diff --git a/.coveragerc b/.coveragerc deleted file mode 100644 index dbfd8d176d..0000000000 --- a/.coveragerc +++ /dev/null @@ -1,9 +0,0 @@ -[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 \ No newline at end of file diff --git a/.eslintrc.yml b/.eslintrc.yml new file mode 100644 index 0000000000..43363404b3 --- /dev/null +++ b/.eslintrc.yml @@ -0,0 +1,25 @@ +env: + commonjs: false + browser: true + es2021: true + jquery: true +extends: + - google +parserOptions: + ecmaVersion: 12 +rules: + no-var: off + guard-for-in: off + no-trailing-spaces: off + camelcase: off + padded-blocks: off + prefer-const: off + max-len: off + require-jsdoc: off + valid-jsdoc: off + no-multiple-empty-lines: off + comma-dangle: off + prefer-spread: off + indent: + - error + - 4 diff --git a/.github/ISSUE_TEMPLATE/app_issue.md b/.github/ISSUE_TEMPLATE/app_issue.md new file mode 100644 index 0000000000..e71861394c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/app_issue.md @@ -0,0 +1,30 @@ +--- +name: App issue +about: Report a bug or issue with the InvenTree app +title: "[APP] Enter bug description" +labels: bug, app +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of the bug or issue + +**To Reproduce** +Steps to reproduce the behavior: + +1. Go to ... +2. Select ... +3. ... + +**Expected Behavior** +A clear and concise description of what you expected to happen + +**Screenshots** +If applicable, add screenshots to help explain your problem + +**Version Information** + +- App platform: *Select iOS or Android* +- App version: *Enter app version* +- Server version: *Enter server version* diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000000..1a75b97af0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,31 @@ +--- +name: Bug report +about: Create a bug report to help us improve InvenTree +title: "[BUG] Enter bug description" +labels: bug, question +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Deployment Method** +Docker +Bare Metal + +**Version Information** +You can get this by going to the "About InvenTree" section in the upper right corner and cicking on to the "copy version information" diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000000..ca9ff88a58 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,26 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "[FR]" +labels: enhancement +assignees: '' + +--- + +**Is your feature request the result of a bug?** +Please link it here. + +**Problem** +A clear and concise description of what the problem is. e.g. I'm always frustrated when [...] + +**Suggested solution** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Examples of other systems** +Show how other software handles your FR if you have examples. + +**Do you want to develop this?** +If so please describe briefly how you would like to implement it (so we can give advice) and if you have experience in the needed technology (you do not need to be a pro - this is just as a information for us). diff --git a/.github/workflows/docker_build.yaml b/.github/workflows/docker_latest.yaml similarity index 90% rename from .github/workflows/docker_build.yaml rename to .github/workflows/docker_latest.yaml index ec8bdf7306..355afa5b87 100644 --- a/.github/workflows/docker_build.yaml +++ b/.github/workflows/docker_latest.yaml @@ -15,6 +15,9 @@ jobs: steps: - name: Checkout Code uses: actions/checkout@v2 + - name: Check version number + run: | + python3 ci/check_version_number.py --dev - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx diff --git a/.github/workflows/docker_stable.yaml b/.github/workflows/docker_stable.yaml new file mode 100644 index 0000000000..3d435e40da --- /dev/null +++ b/.github/workflows/docker_stable.yaml @@ -0,0 +1,42 @@ +# Build and push latest docker image on push to master branch + +name: Docker Build + +on: + push: + branches: + - 'stable' + +jobs: + + docker: + runs-on: ubuntu-latest + + steps: + - name: Checkout Code + uses: actions/checkout@v2 + - name: Check version number + run: | + python3 ci/check_version_number.py --release + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Login to Dockerhub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Build and Push + uses: docker/build-push-action@v2 + with: + context: ./docker + platforms: linux/amd64,linux/arm64,linux/arm/v7 + push: true + target: production + build-args: + branch: stable + repository: inventree/inventree + tags: inventree/inventree:stable + - name: Image Digest + run: echo ${{ steps.docker_build.outputs.digest }} diff --git a/.github/workflows/docker_publish.yaml b/.github/workflows/docker_tag.yaml similarity index 85% rename from .github/workflows/docker_publish.yaml rename to .github/workflows/docker_tag.yaml index 9f3f3d6912..b3b0c53d12 100644 --- a/.github/workflows/docker_publish.yaml +++ b/.github/workflows/docker_tag.yaml @@ -15,7 +15,7 @@ jobs: uses: actions/checkout@v2 - name: Check Release tag run: | - python3 ci/check_version_number.py ${{ github.event.release.tag_name }} + python3 ci/check_version_number.py --release --tag ${{ github.event.release.tag_name }} - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx @@ -32,5 +32,7 @@ jobs: platforms: linux/amd64,linux/arm64,linux/arm/v7 push: true target: production + build-args: + tag: ${{ github.event.release.tag_name }} repository: inventree/inventree tags: inventree/inventree:${{ github.event.release.tag_name }} diff --git a/.github/workflows/html.yaml b/.github/workflows/html.yaml new file mode 100644 index 0000000000..069da7cbb4 --- /dev/null +++ b/.github/workflows/html.yaml @@ -0,0 +1,54 @@ +# Check javascript template files + +name: HTML Templates + +on: + push: + branches: + - master + + pull_request: + branches-ignore: + - l10* + +jobs: + + html: + runs-on: ubuntu-latest + + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + INVENTREE_DB_ENGINE: sqlite3 + INVENTREE_DB_NAME: inventree + 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: Setup Python + uses: actions/setup-python@v2 + with: + python-version: 3.7 + - name: Install Dependencies + run: | + sudo apt-get update + sudo apt-get install gettext + pip3 install invoke + invoke install + invoke static + - name: Check HTML Files + run: | + npm install markuplint + npx markuplint InvenTree/build/templates/build/*.html + npx markuplint InvenTree/common/templates/common/*.html + npx markuplint InvenTree/company/templates/company/*.html + npx markuplint InvenTree/order/templates/order/*.html + npx markuplint InvenTree/part/templates/part/*.html + npx markuplint InvenTree/stock/templates/stock/*.html + npx markuplint InvenTree/templates/*.html + npx markuplint InvenTree/templates/InvenTree/*.html + npx markuplint InvenTree/templates/InvenTree/settings/*.html + diff --git a/.github/workflows/javascript.yaml b/.github/workflows/javascript.yaml index 908a87e31c..a07b516ac6 100644 --- a/.github/workflows/javascript.yaml +++ b/.github/workflows/javascript.yaml @@ -18,11 +18,33 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + INVENTREE_DB_ENGINE: sqlite3 + INVENTREE_DB_NAME: inventree + 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: Check Files + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: 3.7 + - name: Install Dependencies + run: | + sudo apt-get update + sudo apt-get install gettext + pip3 install invoke + invoke install + invoke static + - name: Check Templated Files run: | cd ci python check_js_templates.py - \ No newline at end of file + - 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/.github/workflows/version.yaml b/.github/workflows/version.yaml new file mode 100644 index 0000000000..6e32d9e148 --- /dev/null +++ b/.github/workflows/version.yaml @@ -0,0 +1,20 @@ +# Check that the version number format matches the current branch + +name: Version Numbering + +on: + pull_request: + branches-ignore: + - l10* + +jobs: + + check: + runs-on: ubuntu-latest + + steps: + - name: Checkout Code + uses: actions/checkout@v2 + - name: Check version number + run: | + python3 ci/check_version_number.py --branch ${{ github.base_ref }} diff --git a/.gitignore b/.gitignore index 5610fc4304..420524d06f 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,7 @@ local_settings.py # Files used for testing dummy_image.* +_tmp.csv # Sphinx files docs/_build @@ -66,8 +67,16 @@ secret_key.txt .coverage htmlcov/ +# Temporary javascript files (used for testing) +js_tmp/ + # Development files dev/ # Locale stats file locale_stats.json + +# node.js +package-lock.json +package.json +node_modules/ \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1024e251c1..0677e61de4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,29 +1,102 @@ -Contributions to InvenTree are welcomed - please follow the guidelines below. +Please read the contribution guidelines below, before submitting your first pull request to the InvenTree codebase. -## Feature Branches +## Branches and Versioning -No pushing to master! New featues must be submitted in a separate branch (one branch per feature). +InvenTree roughly follow the [GitLab flow](https://docs.gitlab.com/ee/topics/gitlab_flow.html) branching style, to allow simple management of multiple tagged releases, short-lived branches, and development on the main branch. -## Include Migration Files +### Version Numbering + +InvenTree version numbering follows the [semantic versioning](https://semver.org/) specification. + +### Master Branch + +The HEAD of the "main" or "master" branch of InvenTree represents the current "latest" state of code development. + +- All feature branches are merged into master +- All bug fixes are merged into master + +**No pushing to master:** New featues must be submitted as a pull request from a separate branch (one branch per feature). + +#### Feature Branches + +Feature branches should be branched *from* the *master* branch. + +- One major feature per branch / pull request +- Feature pull requests are merged back *into* the master branch +- Features *may* also be merged into a release candidate branch + +### Stable Branch + +The HEAD of the "stable" branch represents the latest stable release code. + +- Versioned releases are merged into the "stable" branch +- Bug fix branches are made *from* the "stable" branch + +#### Release Candidate Branches + +- Release candidate branches are made from master, and merged into stable. +- RC branches are targetted at a major/minor version e.g. "0.5" +- When a release candidate branch is merged into *stable*, the release is tagged + +#### Bugfix Branches + +- If a bug is discovered in a tagged release version of InvenTree, a "bugfix" or "hotfix" branch should be made *from* that tagged release +- When approved, the branch is merged back *into* stable, with an incremented PATCH number (e.g. 0.4.1 -> 0.4.2) +- The bugfix *must* also be cherry picked into the *master* branch. + +## Migration Files Any required migration files **must** be included in the commit, or the pull-request will be rejected. If you change the underlying database schema, make sure you run `invoke migrate` and commit the migration files before submitting the PR. -## Update Translation Files +*Note: A github action checks for unstaged migration files and will reject the PR if it finds any!* -Any PRs which update translatable strings (i.e. text strings that will appear in the web-front UI) must also update the translation (locale) files to include hooks for the translated strings. +## Unit Testing -*This does not mean that all translations must be provided, but that the translation files must include locations for the translated strings to be written.* +Any new code should be covered by unit tests - a submitted PR may not be accepted if the code coverage for any new features is insufficient, or the overall code coverage is decreased. -To perform this step, simply run `invoke translate` from the top level directory before submitting the PR. +The InvenTree code base makes use of [GitHub actions](https://github.com/features/actions) to run a suite of automated tests against the code base every time a new pull request is received. These actions include (but are not limited to): -## Testing +- Checking Python and Javascript code against standard style guides +- Running unit test suite +- Automated building and pushing of docker images +- Generating translation files -Any new code should be covered by unit tests - a submitted PR may not be accepted if the code coverage is decreased. +The various github actions can be found in the `./github/workflows` directory + +## Code Style + +Sumbitted Python code is automatically checked against PEP style guidelines. Locally you can run `invoke style` to ensure the style checks will pass, before submitting the PR. ## Documentation New features or updates to existing features should be accompanied by user documentation. A PR with associated documentation should link to the matching PR at https://github.com/inventree/inventree-docs/ -## Code Style +## Translations -Sumbitted Python code is automatically checked against PEP style guidelines. Locally you can run `invoke style` to ensure the style checks will pass, before submitting the PR. +Any user-facing strings *must* be passed through the translation engine. + +- InvenTree code is written in English +- User translatable strings are provided in English as the primary language +- Secondary language translations are provided [via Crowdin](https://crowdin.com/project/inventree) + +*Note: Translation files are updated via GitHub actions - you do not need to compile translations files before submitting a pull request!* + +### Python Code + +For strings exposed via Python code, use the following format: + +```python +from django.utils.translation import ugettext_lazy as _ + +user_facing_string = _('This string will be exposed to the translation engine!') +``` + +### Templated Strings + +HTML and javascript files are passed through the django templating engine. Translatable strings are implemented as follows: + +```html +{% load i18n %} + +{% trans "This string will be translated" %} - this string will not! +``` \ No newline at end of file diff --git a/InvenTree/InvenTree/apps.py b/InvenTree/InvenTree/apps.py index feb46ee667..6456c5994f 100644 --- a/InvenTree/InvenTree/apps.py +++ b/InvenTree/InvenTree/apps.py @@ -32,27 +32,44 @@ class InvenTreeConfig(AppConfig): logger.info("Starting background tasks...") + # Remove successful task results from the database InvenTree.tasks.schedule_task( 'InvenTree.tasks.delete_successful_tasks', schedule_type=Schedule.DAILY, ) + # Check for InvenTree updates InvenTree.tasks.schedule_task( 'InvenTree.tasks.check_for_updates', schedule_type=Schedule.DAILY ) + # Heartbeat to let the server know the background worker is running InvenTree.tasks.schedule_task( 'InvenTree.tasks.heartbeat', schedule_type=Schedule.MINUTES, minutes=15 ) + # Keep exchange rates up to date InvenTree.tasks.schedule_task( 'InvenTree.tasks.update_exchange_rates', schedule_type=Schedule.DAILY, ) + # Remove expired sessions + InvenTree.tasks.schedule_task( + 'InvenTree.tasks.delete_expired_sessions', + schedule_type=Schedule.DAILY, + ) + + # Delete "old" stock items + InvenTree.tasks.schedule_task( + 'stock.tasks.delete_old_stock_items', + schedule_type=Schedule.MINUTES, + minutes=30, + ) + def update_exchange_rates(self): """ Update exchange rates each time the server is started, *if*: diff --git a/InvenTree/InvenTree/ci_render_js.py b/InvenTree/InvenTree/ci_render_js.py new file mode 100644 index 0000000000..62e3fc4667 --- /dev/null +++ b/InvenTree/InvenTree/ci_render_js.py @@ -0,0 +1,100 @@ +""" +Pull rendered copies of the templated +""" + +from django.http import response +from django.test import TestCase, testcases +from django.contrib.auth import get_user_model + +import os +import pathlib + + +class RenderJavascriptFiles(TestCase): + """ + A unit test to "render" javascript files. + + The server renders templated javascript files, + we need the fully-rendered files for linting and static tests. + """ + + def setUp(self): + + user = get_user_model() + + self.user = user.objects.create_user( + username='testuser', + password='testpassword', + email='user@gmail.com', + ) + + self.client.login(username='testuser', password='testpassword') + + def download_file(self, filename, prefix): + + url = os.path.join(prefix, filename) + + response = self.client.get(url) + + here = os.path.abspath(os.path.dirname(__file__)) + + output_dir = os.path.join( + here, + '..', + '..', + 'js_tmp', + ) + + output_dir = os.path.abspath(output_dir) + + if not os.path.exists(output_dir): + os.mkdir(output_dir) + + output_file = os.path.join( + output_dir, + filename, + ) + + with open(output_file, 'wb') as output: + output.write(response.content) + + def download_files(self, subdir, prefix): + here = os.path.abspath(os.path.dirname(__file__)) + + js_template_dir = os.path.join( + here, + '..', + 'templates', + 'js', + ) + + directory = os.path.join(js_template_dir, subdir) + + directory = os.path.abspath(directory) + + js_files = pathlib.Path(directory).rglob('*.js') + + n = 0 + + for f in js_files: + js = os.path.basename(f) + + self.download_file(js, prefix) + + n += 1 + + return n + + def test_render_files(self): + """ + Look for all javascript files + """ + + n = 0 + + print("Rendering javascript files...") + + n += self.download_files('translated', '/js/i18n') + n += self.download_files('dynamic', '/js/dynamic') + + print(f"Rendered {n} javascript files.") diff --git a/InvenTree/InvenTree/context.py b/InvenTree/InvenTree/context.py index 3e1f98ffc2..bd68a0182f 100644 --- a/InvenTree/InvenTree/context.py +++ b/InvenTree/InvenTree/context.py @@ -36,9 +36,14 @@ def health_status(request): 'email_configured': InvenTree.status.is_email_configured(), } + # The following keys are required to denote system health + health_keys = [ + 'django_q_running', + ] + all_healthy = True - for k in status.keys(): + for k in health_keys: if status[k] is not True: all_healthy = False diff --git a/InvenTree/InvenTree/filters.py b/InvenTree/InvenTree/filters.py new file mode 100644 index 0000000000..cd1b769646 --- /dev/null +++ b/InvenTree/InvenTree/filters.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from rest_framework.filters import OrderingFilter + + +class InvenTreeOrderingFilter(OrderingFilter): + """ + Custom OrderingFilter class which allows aliased filtering of related fields. + + To use, simply specify this filter in the "filter_backends" section. + + filter_backends = [ + InvenTreeOrderingFilter, + ] + + Then, specify a ordering_field_aliases attribute: + + ordering_field_alises = { + 'name': 'part__part__name', + 'SKU': 'part__SKU', + } + """ + + def get_ordering(self, request, queryset, view): + + ordering = super().get_ordering(request, queryset, view) + + aliases = getattr(view, 'ordering_field_aliases', None) + + # Attempt to map ordering fields based on provided aliases + if ordering is not None and aliases is not None: + """ + Ordering fields should be mapped to separate fields + """ + + for idx, field in enumerate(ordering): + + reverse = False + + if field.startswith('-'): + field = field[1:] + reverse = True + + if field in aliases: + ordering[idx] = aliases[field] + + if reverse: + ordering[idx] = '-' + ordering[idx] + + return ordering diff --git a/InvenTree/InvenTree/locale_stats.json b/InvenTree/InvenTree/locale_stats.json new file mode 100644 index 0000000000..9f003895c5 --- /dev/null +++ b/InvenTree/InvenTree/locale_stats.json @@ -0,0 +1 @@ +{"de": 95, "el": 0, "en": 0, "es": 4, "fr": 6, "he": 0, "id": 0, "it": 0, "ja": 4, "ko": 0, "nl": 0, "no": 0, "pl": 27, "ru": 6, "sv": 0, "th": 0, "tr": 32, "vi": 0, "zh": 1} \ No newline at end of file diff --git a/InvenTree/InvenTree/metadata.py b/InvenTree/InvenTree/metadata.py index 6cf29ab945..613983fe94 100644 --- a/InvenTree/InvenTree/metadata.py +++ b/InvenTree/InvenTree/metadata.py @@ -98,10 +98,12 @@ class InvenTreeMetadata(SimpleMetadata): serializer_info = super().get_serializer_info(serializer) - try: - ModelClass = serializer.Meta.model + model_class = None - model_fields = model_meta.get_field_info(ModelClass) + try: + model_class = serializer.Meta.model + + model_fields = model_meta.get_field_info(model_class) # Iterate through simple fields for name, field in model_fields.fields.items(): @@ -146,11 +148,23 @@ class InvenTreeMetadata(SimpleMetadata): if hasattr(serializer, 'instance'): instance = serializer.instance - if instance is None: - try: - instance = self.view.get_object() - except: - pass + 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) + + if kwargs: + pk = None + + for field in ['pk', 'id', 'PK', 'ID']: + if field in kwargs: + pk = kwargs[field] + break + + if pk is not None: + try: + instance = model_class.objects.get(pk=pk) + except (ValueError, model_class.DoesNotExist): + pass if instance is not None: """ diff --git a/InvenTree/InvenTree/models.py b/InvenTree/InvenTree/models.py index 3213838e78..2ca179bb40 100644 --- a/InvenTree/InvenTree/models.py +++ b/InvenTree/InvenTree/models.py @@ -5,8 +5,10 @@ Generic models which provide extra functionality over base Django model types. from __future__ import unicode_literals import os +import logging from django.db import models +from django.conf import settings from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType from django.utils.translation import gettext_lazy as _ @@ -21,6 +23,9 @@ from mptt.exceptions import InvalidMove from .validators import validate_tree_name +logger = logging.getLogger('inventree') + + def rename_attachment(instance, filename): """ Function for renaming an attachment file. @@ -77,6 +82,72 @@ class InvenTreeAttachment(models.Model): def basename(self): return os.path.basename(self.attachment.name) + @basename.setter + def basename(self, fn): + """ + Function to rename the attachment file. + + - Filename cannot be empty + - Filename cannot contain illegal characters + - Filename must specify an extension + - Filename cannot match an existing file + """ + + fn = fn.strip() + + if len(fn) == 0: + raise ValidationError(_('Filename must not be empty')) + + attachment_dir = os.path.join( + settings.MEDIA_ROOT, + self.getSubdir() + ) + + old_file = os.path.join( + settings.MEDIA_ROOT, + self.attachment.name + ) + + new_file = os.path.join( + settings.MEDIA_ROOT, + self.getSubdir(), + fn + ) + + new_file = os.path.abspath(new_file) + + # Check that there are no directory tricks going on... + if not os.path.dirname(new_file) == attachment_dir: + logger.error(f"Attempted to rename attachment outside valid directory: '{new_file}'") + raise ValidationError(_("Invalid attachment directory")) + + # Ignore further checks if the filename is not actually being renamed + if new_file == old_file: + return + + forbidden = ["'", '"', "#", "@", "!", "&", "^", "<", ">", ":", ";", "/", "\\", "|", "?", "*", "%", "~", "`"] + + for c in forbidden: + if c in fn: + raise ValidationError(_(f"Filename contains illegal character '{c}'")) + + if len(fn.split('.')) < 2: + raise ValidationError(_("Filename missing extension")) + + if not os.path.exists(old_file): + logger.error(f"Trying to rename attachment '{old_file}' which does not exist") + return + + if os.path.exists(new_file): + raise ValidationError(_("Attachment with this filename already exists")) + + try: + os.rename(old_file, new_file) + self.attachment.name = os.path.join(self.getSubdir(), fn) + self.save() + except: + raise ValidationError(_("Error renaming file")) + class Meta: abstract = True diff --git a/InvenTree/InvenTree/serializers.py b/InvenTree/InvenTree/serializers.py index baf08e112b..0d21550f00 100644 --- a/InvenTree/InvenTree/serializers.py +++ b/InvenTree/InvenTree/serializers.py @@ -10,6 +10,8 @@ import os from decimal import Decimal +from collections import OrderedDict + from django.conf import settings from django.contrib.auth.models import User from django.core.exceptions import ValidationError as DjangoValidationError @@ -46,10 +48,12 @@ class InvenTreeMoneySerializer(MoneyField): amount = None try: - if amount is not None: + if amount is not None and amount is not empty: amount = Decimal(amount) except: - raise ValidationError(_("Must be a valid number")) + raise ValidationError({ + self.field_name: _("Must be a valid number") + }) currency = data.get(get_currency_field_name(self.field_name), self.default_currency) @@ -92,9 +96,14 @@ class InvenTreeModelSerializer(serializers.ModelSerializer): # If instance is None, we are creating a new instance if instance is None and data is not empty: - - # Required to side-step immutability of a QueryDict - data = data.copy() + + if data is None: + data = OrderedDict() + else: + new_data = OrderedDict() + new_data.update(data) + + data = new_data # Add missing fields which have default values ModelClass = self.Meta.model @@ -167,6 +176,18 @@ class InvenTreeModelSerializer(serializers.ModelSerializer): return self.instance + def update(self, instance, validated_data): + """ + Catch any django ValidationError, and re-throw as a DRF ValidationError + """ + + try: + instance = super().update(instance, validated_data) + except (ValidationError, DjangoValidationError) as exc: + raise ValidationError(detail=serializers.as_serializer_error(exc)) + + return instance + def run_validation(self, data=empty): """ Perform serializer validation. @@ -188,7 +209,10 @@ class InvenTreeModelSerializer(serializers.ModelSerializer): # Update instance fields for attr, value in data.items(): - setattr(instance, attr, value) + try: + setattr(instance, attr, value) + except (ValidationError, DjangoValidationError) as exc: + raise ValidationError(detail=serializers.as_serializer_error(exc)) # Run a 'full_clean' on the model. # Note that by default, DRF does *not* perform full model validation! @@ -208,6 +232,22 @@ class InvenTreeModelSerializer(serializers.ModelSerializer): return data +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. + """ + + # The 'filename' field must be present in the serializer + filename = serializers.CharField( + label=_('Filename'), + required=False, + source='basename', + allow_blank=False, + ) + + class InvenTreeAttachmentSerializerField(serializers.FileField): """ Override the DRF native FileField serializer, diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index 4543b873bd..f3c166df88 100644 --- a/InvenTree/InvenTree/settings.py +++ b/InvenTree/InvenTree/settings.py @@ -169,6 +169,30 @@ else: logger.exception(f"Couldn't load keyfile {key_file}") sys.exit(-1) +# The filesystem location for served static files +STATIC_ROOT = os.path.abspath( + get_setting( + 'INVENTREE_STATIC_ROOT', + CONFIG.get('static_root', None) + ) +) + +if STATIC_ROOT is None: + print("ERROR: INVENTREE_STATIC_ROOT directory not defined") + sys.exit(1) + +# The filesystem location for served static files +MEDIA_ROOT = os.path.abspath( + get_setting( + 'INVENTREE_MEDIA_ROOT', + CONFIG.get('media_root', None) + ) +) + +if MEDIA_ROOT is None: + print("ERROR: INVENTREE_MEDIA_ROOT directory is not defined") + sys.exit(1) + # List of allowed hosts (default = allow all) ALLOWED_HOSTS = CONFIG.get('allowed_hosts', ['*']) @@ -189,22 +213,12 @@ if cors_opt: # Web URL endpoint for served static files STATIC_URL = '/static/' -# The filesystem location for served static files -STATIC_ROOT = os.path.abspath( - get_setting( - 'INVENTREE_STATIC_ROOT', - CONFIG.get('static_root', '/home/inventree/data/static') - ) -) - -STATICFILES_DIRS = [ - os.path.join(BASE_DIR, 'InvenTree', 'static'), -] +STATICFILES_DIRS = [] # Translated Template settings STATICFILES_I18_PREFIX = 'i18n' STATICFILES_I18_SRC = os.path.join(BASE_DIR, 'templates', 'js', 'translated') -STATICFILES_I18_TRG = STATICFILES_DIRS[0] + '_' + STATICFILES_I18_PREFIX +STATICFILES_I18_TRG = os.path.join(BASE_DIR, 'InvenTree', 'static_i18n') STATICFILES_DIRS.append(STATICFILES_I18_TRG) STATICFILES_I18_TRG = os.path.join(STATICFILES_I18_TRG, STATICFILES_I18_PREFIX) @@ -218,19 +232,11 @@ STATIC_COLOR_THEMES_DIR = os.path.join(STATIC_ROOT, 'css', 'color-themes') # Web URL endpoint for served media files MEDIA_URL = '/media/' -# The filesystem location for served static files -MEDIA_ROOT = os.path.abspath( - get_setting( - 'INVENTREE_MEDIA_ROOT', - CONFIG.get('media_root', '/home/inventree/data/media') - ) -) - if DEBUG: logger.info("InvenTree running in DEBUG mode") -logger.info(f"MEDIA_ROOT: '{MEDIA_ROOT}'") -logger.info(f"STATIC_ROOT: '{STATIC_ROOT}'") +logger.debug(f"MEDIA_ROOT: '{MEDIA_ROOT}'") +logger.debug(f"STATIC_ROOT: '{STATIC_ROOT}'") # Application definition @@ -320,6 +326,7 @@ TEMPLATES = [ 'django.template.context_processors.i18n', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', + # Custom InvenTree context processors 'InvenTree.context.health_status', 'InvenTree.context.status_codes', 'InvenTree.context.user_roles', @@ -413,7 +420,7 @@ Configure the database backend based on the user-specified values. - The following code lets the user "mix and match" database configuration """ -logger.info("Configuring database backend:") +logger.debug("Configuring database backend:") # Extract database configuration from the config.yaml file db_config = CONFIG.get('database', {}) @@ -467,11 +474,9 @@ if db_engine in ['sqlite3', 'postgresql', 'mysql']: db_name = db_config['NAME'] db_host = db_config.get('HOST', "''") -print("InvenTree Database Configuration") -print("================================") -print(f"ENGINE: {db_engine}") -print(f"NAME: {db_name}") -print(f"HOST: {db_host}") +logger.info(f"DB_ENGINE: {db_engine}") +logger.info(f"DB_NAME: {db_name}") +logger.info(f"DB_HOST: {db_host}") DATABASES['default'] = db_config diff --git a/InvenTree/InvenTree/static/css/inventree.css b/InvenTree/InvenTree/static/css/inventree.css index adb5a41ee6..585c0b3825 100644 --- a/InvenTree/InvenTree/static/css/inventree.css +++ b/InvenTree/InvenTree/static/css/inventree.css @@ -640,6 +640,11 @@ z-index: 9999; } +.modal-error { + border: 2px #FCC solid; + background-color: #f5f0f0; +} + .modal-header { border-bottom: 1px solid #ddd; } @@ -730,6 +735,13 @@ padding: 10px; } +.form-panel { + border-radius: 5px; + border: 1px solid #ccc; + padding: 5px; +} + + .modal input { width: 100%; } @@ -1037,6 +1049,11 @@ a.anchor { height: 30px; } +/* Force minimum width of number input fields to show at least ~5 digits */ +input[type='number']{ + min-width: 80px; +} + .search-menu { padding-top: 2rem; } @@ -1044,3 +1061,7 @@ a.anchor { .search-menu .ui-menu-item { margin-top: 0.5rem; } + +.product-card-panel{ + height: 100%; +} diff --git a/InvenTree/InvenTree/tasks.py b/InvenTree/InvenTree/tasks.py index 24631dc9e5..5fb6960601 100644 --- a/InvenTree/InvenTree/tasks.py +++ b/InvenTree/InvenTree/tasks.py @@ -36,7 +36,7 @@ def schedule_task(taskname, **kwargs): # If this task is already scheduled, don't schedule it again # Instead, update the scheduling parameters if Schedule.objects.filter(func=taskname).exists(): - logger.info(f"Scheduled task '{taskname}' already exists - updating!") + logger.debug(f"Scheduled task '{taskname}' already exists - updating!") Schedule.objects.filter(func=taskname).update(**kwargs) else: @@ -204,6 +204,25 @@ def check_for_updates(): ) +def delete_expired_sessions(): + """ + Remove any expired user sessions from the database + """ + + try: + from django.contrib.sessions.models import Session + + # Delete any sessions that expired more than a day ago + expired = Session.objects.filter(expire_date__lt=timezone.now() - timedelta(days=1)) + + if True or expired.count() > 0: + logger.info(f"Deleting {expired.count()} expired sessions.") + expired.delete() + + except AppRegistryNotReady: + logger.info("Could not perform 'delete_expired_sessions' - App registry not ready") + + def update_exchange_rates(): """ Update currency exchange rates diff --git a/InvenTree/InvenTree/urls.py b/InvenTree/InvenTree/urls.py index 71f6388c68..7d51c6a4cf 100644 --- a/InvenTree/InvenTree/urls.py +++ b/InvenTree/InvenTree/urls.py @@ -111,6 +111,7 @@ translated_javascript_urls = [ url(r'^company.js', DynamicJsView.as_view(template_name='js/translated/company.js'), name='company.js'), url(r'^filters.js', DynamicJsView.as_view(template_name='js/translated/filters.js'), name='filters.js'), url(r'^forms.js', DynamicJsView.as_view(template_name='js/translated/forms.js'), name='forms.js'), + url(r'^helpers.js', DynamicJsView.as_view(template_name='js/translated/helpers.js'), name='helpers.js'), url(r'^label.js', DynamicJsView.as_view(template_name='js/translated/label.js'), name='label.js'), url(r'^model_renderers.js', DynamicJsView.as_view(template_name='js/translated/model_renderers.js'), name='model_renderers.js'), url(r'^modals.js', DynamicJsView.as_view(template_name='js/translated/modals.js'), name='modals.js'), diff --git a/InvenTree/InvenTree/version.py b/InvenTree/InvenTree/version.py index c25b1abb67..cf9d026166 100644 --- a/InvenTree/InvenTree/version.py +++ b/InvenTree/InvenTree/version.py @@ -8,36 +8,48 @@ import re import common.models -INVENTREE_SW_VERSION = "0.4.5" +INVENTREE_SW_VERSION = "0.5.0" -INVENTREE_API_VERSION = 9 +INVENTREE_API_VERSION = 12 """ Increment this API version number whenever there is a significant change to the API that any clients need to know about -v9 -> 2021-08-09 +v12 -> 2021-09-07 + - Adds API endpoint to receive stock items against a PurchaseOrder + +v11 -> 2021-08-26 + - Adds "units" field to PartBriefSerializer + - This allows units to be introspected from the "part_detail" field in the StockItem serializer + +v10 -> 2021-08-23 + - Adds "purchase_price_currency" to StockItem serializer + - Adds "purchase_price_string" to StockItem serializer + - Purchase price is now writable for StockItem serializer + +v9 -> 2021-08-09 - Adds "price_string" to part pricing serializers -v8 -> 2021-07-19 +v8 -> 2021-07-19 - Refactors the API interface for SupplierPart and ManufacturerPart models - ManufacturerPart objects can no longer be created via the SupplierPart API endpoint -v7 -> 2021-07-03 +v7 -> 2021-07-03 - Introduced the concept of "API forms" in https://github.com/inventree/InvenTree/pull/1716 - API OPTIONS endpoints provide comprehensive field metedata - Multiple new API endpoints added for database models -v6 -> 2021-06-23 +v6 -> 2021-06-23 - Part and Company images can now be directly uploaded via the REST API -v5 -> 2021-06-21 +v5 -> 2021-06-21 - Adds API interface for manufacturer part parameters -v4 -> 2021-06-01 +v4 -> 2021-06-01 - BOM items can now accept "variant stock" to be assigned against them - Many slight API tweaks were needed to get this to work properly! -v3 -> 2021-05-22: +v3 -> 2021-05-22: - The updated StockItem "history tracking" now uses a different interface """ @@ -58,7 +70,7 @@ def inventreeInstanceTitle(): def inventreeVersion(): """ Returns the InvenTree version string """ - return INVENTREE_SW_VERSION + return INVENTREE_SW_VERSION.lower().strip() def inventreeVersionTuple(version=None): @@ -72,6 +84,30 @@ def inventreeVersionTuple(version=None): return [int(g) for g in match.groups()] +def isInvenTreeDevelopmentVersion(): + """ + Return True if current InvenTree version is a "development" version + """ + return inventreeVersion().endswith('dev') + + +def inventreeDocsVersion(): + """ + Return the version string matching the latest documentation. + + Development -> "latest" + Release -> "major.minor" + + """ + + if isInvenTreeDevelopmentVersion(): + return "latest" + else: + major, minor, patch = inventreeVersionTuple() + + return f"{major}.{minor}" + + def isInvenTreeUpToDate(): """ Test if the InvenTree instance is "up to date" with the latest version. diff --git a/InvenTree/build/serializers.py b/InvenTree/build/serializers.py index 5c0fced884..69e3a7aed0 100644 --- a/InvenTree/build/serializers.py +++ b/InvenTree/build/serializers.py @@ -10,7 +10,8 @@ from django.db.models import BooleanField from rest_framework import serializers -from InvenTree.serializers import InvenTreeModelSerializer, InvenTreeAttachmentSerializerField, UserSerializerBrief +from InvenTree.serializers import InvenTreeModelSerializer, InvenTreeAttachmentSerializer +from InvenTree.serializers import InvenTreeAttachmentSerializerField, UserSerializerBrief from stock.serializers import StockItemSerializerBrief from stock.serializers import LocationSerializer @@ -158,7 +159,7 @@ class BuildItemSerializer(InvenTreeModelSerializer): ] -class BuildAttachmentSerializer(InvenTreeModelSerializer): +class BuildAttachmentSerializer(InvenTreeAttachmentSerializer): """ Serializer for a BuildAttachment """ @@ -172,6 +173,7 @@ class BuildAttachmentSerializer(InvenTreeModelSerializer): 'pk', 'build', 'attachment', + 'filename', 'comment', 'upload_date', ] diff --git a/InvenTree/build/templates/build/auto_allocate.html b/InvenTree/build/templates/build/auto_allocate.html index 48d1837ae0..2f2c7bbca7 100644 --- a/InvenTree/build/templates/build/auto_allocate.html +++ b/InvenTree/build/templates/build/auto_allocate.html @@ -6,7 +6,7 @@ {{ block.super }}
- {% trans "Automatically Allocate Stock" %}
+ {% trans "Automatically Allocate Stock" %}
{% trans "The following stock items will be allocated to the specified build output" %}
{% if allocations %} @@ -24,7 +24,7 @@ {{ item.stock_item.part.full_name }}
- {{ item.stock_item.part.description }} + {{ item.stock_item.part.description }} {% decimal item.quantity %} {{ item.stock_item.location }} diff --git a/InvenTree/build/templates/build/complete.html b/InvenTree/build/templates/build/complete.html index 527c0598d4..eeedc027dd 100644 --- a/InvenTree/build/templates/build/complete.html +++ b/InvenTree/build/templates/build/complete.html @@ -9,7 +9,7 @@ {% else %}
- {% trans "Build Order is incomplete" %}
+ {% trans "Build Order is incomplete" %}
diff --git a/InvenTree/build/templates/build/detail.html b/InvenTree/build/templates/build/detail.html index fe716b87f2..421cac059c 100644 --- a/InvenTree/build/templates/build/detail.html +++ b/InvenTree/build/templates/build/detail.html @@ -40,7 +40,7 @@ {% if build.take_from %} {{ build.take_from }}{% include "clip.html"%} {% else %} - {% trans "Stock can be taken from any available location." %} + {% trans "Stock can be taken from any available location." %} {% endif %} @@ -53,7 +53,7 @@ {{ build.destination }} {% include "clip.html"%} {% else %} - {% trans "Destination location not specified" %} + {% trans "Destination location not specified" %} {% endif %} @@ -127,7 +127,7 @@ {{ build.target_date }}{% if build.is_overdue %} {% endif %} {% else %} - {% trans "No target date set" %} + {% trans "No target date set" %} {% endif %} @@ -136,7 +136,7 @@ {% if build.completion_date %} {{ build.completion_date }}{% if build.completed_by %}{{ build.completed_by }}{% endif %} {% else %} - {% trans "Build not complete" %} + {% trans "Build not complete" %} {% endif %} @@ -222,7 +222,7 @@ {% else %}
- {% trans "Create a new build output" %}
+ {% trans "Create a new build output" %}
{% trans "No incomplete build outputs remain." %}
{% trans "Create a new build output using the button above" %}
@@ -369,6 +369,7 @@ loadAttachmentTable( constructForm(url, { fields: { + filename: {}, comment: {}, }, onSuccess: reloadAttachmentTable, diff --git a/InvenTree/build/test_build.py b/InvenTree/build/test_build.py index b572feb14b..30fe8c488b 100644 --- a/InvenTree/build/test_build.py +++ b/InvenTree/build/test_build.py @@ -8,8 +8,9 @@ from django.db.utils import IntegrityError from InvenTree import status_codes as status from build.models import Build, BuildItem, get_next_build_number -from stock.models import StockItem from part.models import Part, BomItem +from stock.models import StockItem +from stock.tasks import delete_old_stock_items class BuildTest(TestCase): @@ -352,6 +353,11 @@ class BuildTest(TestCase): # the original BuildItem objects should have been deleted! self.assertEqual(BuildItem.objects.count(), 0) + self.assertEqual(StockItem.objects.count(), 8) + + # Clean up old stock items + delete_old_stock_items() + # New stock items should have been created! self.assertEqual(StockItem.objects.count(), 7) diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index 3924a516f3..aed6f2bf14 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -20,13 +20,17 @@ from djmoney.contrib.exchange.models import convert_money from djmoney.contrib.exchange.exceptions import MissingRate from django.utils.translation import ugettext_lazy as _ -from django.utils.html import format_html from django.core.validators import MinValueValidator, URLValidator from django.core.exceptions import ValidationError import InvenTree.helpers import InvenTree.fields +import logging + + +logger = logging.getLogger('inventree') + class BaseInvenTreeSetting(models.Model): """ @@ -49,55 +53,37 @@ class BaseInvenTreeSetting(models.Model): are assigned their default values """ - keys = set() - settings = [] - results = cls.objects.all() if user is not None: results = results.filter(user=user) # Query the database + settings = {} + for setting in results: if setting.key: - settings.append({ - "key": setting.key.upper(), - "value": setting.value - }) - - keys.add(setting.key.upper()) + settings[setting.key.upper()] = setting.value # Specify any "default" values which are not in the database for key in cls.GLOBAL_SETTINGS.keys(): - if key.upper() not in keys: + if key.upper() not in settings: - settings.append({ - "key": key.upper(), - "value": cls.get_setting_default(key) - }) - - # Enforce javascript formatting - for idx, setting in enumerate(settings): - - key = setting['key'] - value = setting['value'] + settings[key.upper()] = cls.get_setting_default(key) + for key, value in settings.items(): validator = cls.get_setting_validator(key) - # Convert to javascript compatible booleans if cls.validator_is_bool(validator): - value = str(value).lower() - - # Numerical values remain the same + value = InvenTree.helpers.str2bool(value) elif cls.validator_is_int(validator): - pass + try: + value = int(value) + except ValueError: + value = cls.get_setting_default(key) - # Wrap strings with quotes - else: - value = format_html("'{}'", value) - - setting["value"] = value + settings[key] = value return settings @@ -802,6 +788,44 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'description': _('Prefix value for purchase order reference'), 'default': 'PO', }, + + # enable/diable ui elements + 'BUILD_FUNCTION_ENABLE': { + 'name': _('Enable build'), + 'description': _('Enable build functionality in InvenTree interface'), + 'default': True, + 'validator': bool, + }, + 'BUY_FUNCTION_ENABLE': { + 'name': _('Enable buy'), + 'description': _('Enable buy functionality in InvenTree interface'), + 'default': True, + 'validator': bool, + }, + 'SELL_FUNCTION_ENABLE': { + 'name': _('Enable sell'), + 'description': _('Enable sell functionality in InvenTree interface'), + 'default': True, + 'validator': bool, + }, + 'STOCK_FUNCTION_ENABLE': { + 'name': _('Enable stock'), + 'description': _('Enable stock functionality in InvenTree interface'), + 'default': True, + 'validator': bool, + }, + 'SO_FUNCTION_ENABLE': { + 'name': _('Enable SO'), + 'description': _('Enable SO functionality in InvenTree interface'), + 'default': True, + 'validator': bool, + }, + 'PO_FUNCTION_ENABLE': { + 'name': _('Enable PO'), + 'description': _('Enable PO functionality in InvenTree interface'), + 'default': True, + 'validator': bool, + }, } class Meta: @@ -1021,7 +1045,7 @@ class PriceBreak(models.Model): try: converted = convert_money(self.price, currency_code) except MissingRate: - print(f"WARNING: No currency conversion rate available for {self.price_currency} -> {currency_code}") + logger.warning(f"No currency conversion rate available for {self.price_currency} -> {currency_code}") return self.price.amount return converted.amount diff --git a/InvenTree/common/templates/common/edit_setting.html b/InvenTree/common/templates/common/edit_setting.html index c74ed7d591..c479e268a5 100644 --- a/InvenTree/common/templates/common/edit_setting.html +++ b/InvenTree/common/templates/common/edit_setting.html @@ -6,9 +6,9 @@ {{ block.super }} {% endblock %} \ No newline at end of file diff --git a/InvenTree/company/models.py b/InvenTree/company/models.py index 2531781631..b0bb8caaa5 100644 --- a/InvenTree/company/models.py +++ b/InvenTree/company/models.py @@ -501,6 +501,34 @@ class SupplierPart(models.Model): 'manufacturer_part': _("Linked manufacturer part must reference the same base part"), }) + def save(self, *args, **kwargs): + """ Overriding save method to connect an existing ManufacturerPart """ + + manufacturer_part = None + + if all(key in kwargs for key in ('manufacturer', 'MPN')): + manufacturer_name = kwargs.pop('manufacturer') + MPN = kwargs.pop('MPN') + + # Retrieve manufacturer part + try: + manufacturer_part = ManufacturerPart.objects.get(manufacturer__name=manufacturer_name, MPN=MPN) + except (ValueError, Company.DoesNotExist): + # ManufacturerPart does not exist + pass + + if manufacturer_part: + if not self.manufacturer_part: + # Connect ManufacturerPart to SupplierPart + self.manufacturer_part = manufacturer_part + else: + raise ValidationError(f'SupplierPart {self.__str__} is already linked to {self.manufacturer_part}') + + self.clean() + self.validate_unique() + + super().save(*args, **kwargs) + part = models.ForeignKey('part.Part', on_delete=models.CASCADE, related_name='supplier_parts', verbose_name=_('Base Part'), diff --git a/InvenTree/company/serializers.py b/InvenTree/company/serializers.py index e9f13d021d..a471b87a90 100644 --- a/InvenTree/company/serializers.py +++ b/InvenTree/company/serializers.py @@ -204,9 +204,9 @@ class SupplierPartSerializer(InvenTreeModelSerializer): supplier = serializers.PrimaryKeyRelatedField(queryset=Company.objects.filter(is_supplier=True)) - manufacturer = serializers.PrimaryKeyRelatedField(source='manufacturer_part.manufacturer', read_only=True) + manufacturer = serializers.CharField(read_only=True) - MPN = serializers.StringRelatedField(source='manufacturer_part.MPN') + MPN = serializers.CharField(read_only=True) manufacturer_part_detail = ManufacturerPartSerializer(source='manufacturer_part', read_only=True) @@ -231,6 +231,25 @@ class SupplierPartSerializer(InvenTreeModelSerializer): 'supplier_detail', ] + def create(self, validated_data): + """ Extract manufacturer data and process ManufacturerPart """ + + # Create SupplierPart + supplier_part = super().create(validated_data) + + # Get ManufacturerPart raw data (unvalidated) + manufacturer = self.initial_data.get('manufacturer', None) + MPN = self.initial_data.get('MPN', None) + + if manufacturer and MPN: + kwargs = { + 'manufacturer': manufacturer, + 'MPN': MPN, + } + supplier_part.save(**kwargs) + + return supplier_part + class SupplierPriceBreakSerializer(InvenTreeModelSerializer): """ Serializer for SupplierPriceBreak object """ diff --git a/InvenTree/company/templates/company/company_base.html b/InvenTree/company/templates/company/company_base.html index c50a9490f0..e4ca64b32e 100644 --- a/InvenTree/company/templates/company/company_base.html +++ b/InvenTree/company/templates/company/company_base.html @@ -78,7 +78,7 @@ {% if company.currency %} {{ company.currency }} {% else %} - {% trans "Uses default currency" %} + {% trans "Uses default currency" %} {% endif %} diff --git a/InvenTree/company/templates/company/detail.html b/InvenTree/company/templates/company/detail.html index 884ec6e8de..903cfbe060 100644 --- a/InvenTree/company/templates/company/detail.html +++ b/InvenTree/company/templates/company/detail.html @@ -24,19 +24,17 @@ {% endif %}
- + +
@@ -59,27 +57,25 @@ {% if roles.purchase_order.change %}
-
+
{% if roles.purchase_order.add %} - {% endif %} -
- -
+
+ + +
@@ -87,7 +83,7 @@
{% endif %} - +
@@ -109,7 +105,7 @@ {% if roles.purchase_order.add %}
-
@@ -131,7 +127,7 @@ {% if roles.sales_order.add %}
-
@@ -274,6 +270,10 @@ {% if company.is_manufacturer %} + function reloadManufacturerPartTable() { + $('#manufacturer-part-table').bootstrapTable('refresh'); + } + $("#manufacturer-part-create").click(function () { createManufacturerPart({ @@ -285,7 +285,7 @@ }); loadManufacturerPartTable( - "#part-table", + "#manufacturer-part-table", "{% url 'api-manufacturer-part-list' %}", { params: { @@ -296,20 +296,20 @@ } ); - linkButtonsToSelection($("#manufacturer-table"), ['#table-options']); + linkButtonsToSelection($("#manufacturer-part-table"), ['#manufacturer-table-options']); - $("#multi-part-delete").click(function() { - var selections = $("#part-table").bootstrapTable("getSelections"); + $("#multi-manufacturer-part-delete").click(function() { + var selections = $("#manufacturer-part-table").bootstrapTable("getSelections"); deleteManufacturerParts(selections, { onSuccess: function() { - $("#part-table").bootstrapTable("refresh"); + $("#manufacturer-part-table").bootstrapTable("refresh"); } }); }); - $("#multi-part-order").click(function() { - var selections = $("#part-table").bootstrapTable("getSelections"); + $("#multi-manufacturer-part-order").click(function() { + var selections = $("#manufacturer-part-table").bootstrapTable("getSelections"); var parts = []; @@ -353,9 +353,9 @@ } ); - {% endif %} + linkButtonsToSelection($("#supplier-part-table"), ['#supplier-table-options']); - $("#multi-part-delete").click(function() { + $("#multi-supplier-part-delete").click(function() { var selections = $("#supplier-part-table").bootstrapTable("getSelections"); var requests = []; @@ -379,8 +379,8 @@ ); }); - $("#multi-part-order").click(function() { - var selections = $("#part-table").bootstrapTable("getSelections"); + $("#multi-supplier-part-order").click(function() { + var selections = $("#supplier-part-table").bootstrapTable("getSelections"); var parts = []; @@ -395,6 +395,8 @@ }); }); + {% endif %} + attachNavCallbacks({ name: 'company', default: 'company-stock' diff --git a/InvenTree/company/templates/company/manufacturer_part.html b/InvenTree/company/templates/company/manufacturer_part.html index 4623eb3a07..13e81aaa90 100644 --- a/InvenTree/company/templates/company/manufacturer_part.html +++ b/InvenTree/company/templates/company/manufacturer_part.html @@ -109,7 +109,7 @@ src="{% static 'img/blank_image.png' %}" {% trans "New Supplier Part" %}
- + @@ -133,7 +133,7 @@ src="{% static 'img/blank_image.png' %}" {% trans "New Parameter" %}
- + @@ -225,7 +225,7 @@ $("#multi-parameter-delete").click(function() {
    `; selections.forEach(function(item) { - text += `
  • ${item.name} - ${item.value}
  • `; + text += `
  • ${item.name} - ${item.value}
  • `; }); text += ` diff --git a/InvenTree/company/templates/company/navbar.html b/InvenTree/company/templates/company/navbar.html index b652d6b603..3c307704e6 100644 --- a/InvenTree/company/templates/company/navbar.html +++ b/InvenTree/company/templates/company/navbar.html @@ -2,6 +2,10 @@ {% load static %} {% load inventree_extras %} +{% settings_value 'STOCK_FUNCTION_ENABLE' as enable_stock %} +{% settings_value 'SO_FUNCTION_ENABLE' as enable_so %} +{% settings_value 'PO_FUNCTION_ENABLE' as enable_po %} +
    • @@ -28,6 +32,7 @@ {% endif %} {% if company.is_manufacturer or company.is_supplier %} + {% if enable_stock %}
    • @@ -35,8 +40,9 @@
    • {% endif %} + {% endif %} - {% if company.is_supplier %} + {% if company.is_supplier and enable_po %}
    • @@ -45,7 +51,7 @@
    • {% endif %} - {% if company.is_customer %} + {% if company.is_customer and enable_so %}
    • diff --git a/InvenTree/company/templates/company/supplier_part.html b/InvenTree/company/templates/company/supplier_part.html index ec85d85af9..472fa62c91 100644 --- a/InvenTree/company/templates/company/supplier_part.html +++ b/InvenTree/company/templates/company/supplier_part.html @@ -160,7 +160,7 @@ src="{% static 'img/blank_image.png' %}"
      {% if roles.purchase_order.add %}
      -
      diff --git a/InvenTree/img_source/folder_closed.svg b/InvenTree/img_source/folder_closed.svg deleted file mode 100644 index 6677688a3d..0000000000 --- a/InvenTree/img_source/folder_closed.svg +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/InvenTree/img_source/folder_open.svg b/InvenTree/img_source/folder_open.svg deleted file mode 100644 index cb971d9034..0000000000 --- a/InvenTree/img_source/folder_open.svg +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index 80ae21817c..242af63f76 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -36,7 +36,7 @@ msgstr "Datum eingeben" #: 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "Bestätigen" @@ -73,7 +73,7 @@ msgstr "Kategorie auswählen" msgid "Duplicate serial: {n}" msgstr "Doppelte Seriennummer: {n}" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" @@ -102,152 +102,178 @@ msgstr "Keine Seriennummern gefunden" 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:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" msgstr "Anhang" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "Datei zum Anhängen auswählen" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "Kommentar" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "Datei-Kommentar" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "Benutzer" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "Hochladedatum" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "Dateiname darf nicht leer sein" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "Ungültiges Verzeichnis für Anhang" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "Dateiname enthält ungültiges Zeichen '{c}'" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "Dateiendung fehlt" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "Anhang mit diesem Dateinamen bereits vorhanden" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "Fehler beim Umbenennen" + +#: InvenTree/models.py:184 msgid "Invalid choice" msgstr "Ungültige Auswahl" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" msgstr "Name" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" msgstr "Beschreibung" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" msgstr "Beschreibung (optional)" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" msgstr "Eltern" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" msgstr "Muss eine gültige Nummer sein" -#: InvenTree/settings.py:518 +#: InvenTree/serializers.py:244 +msgid "Filename" +msgstr "Dateiname" + +#: InvenTree/settings.py:523 msgid "German" msgstr "Deutsch" -#: InvenTree/settings.py:519 +#: InvenTree/settings.py:524 msgid "Greek" msgstr "Griechisch" -#: InvenTree/settings.py:520 +#: InvenTree/settings.py:525 msgid "English" msgstr "Englisch" -#: InvenTree/settings.py:521 +#: InvenTree/settings.py:526 msgid "Spanish" msgstr "Spanisch" -#: InvenTree/settings.py:522 +#: InvenTree/settings.py:527 msgid "French" msgstr "Französisch" -#: InvenTree/settings.py:523 +#: InvenTree/settings.py:528 msgid "Hebrew" msgstr "Hebräisch" -#: InvenTree/settings.py:524 +#: InvenTree/settings.py:529 msgid "Italian" msgstr "Italienisch" -#: InvenTree/settings.py:525 +#: InvenTree/settings.py:530 msgid "Japanese" msgstr "Japanisch" -#: InvenTree/settings.py:526 +#: InvenTree/settings.py:531 msgid "Korean" msgstr "Koreanisch" -#: InvenTree/settings.py:527 +#: InvenTree/settings.py:532 msgid "Dutch" msgstr "Niederländisch" -#: InvenTree/settings.py:528 +#: InvenTree/settings.py:533 msgid "Norwegian" msgstr "Norwegisch" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:534 msgid "Polish" msgstr "Polnisch" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:535 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:536 msgid "Swedish" msgstr "Schwedisch" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:537 msgid "Thai" msgstr "Thailändisch" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:538 msgid "Turkish" msgstr "Türkisch" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:539 msgid "Vietnamese" msgstr "Vietnamesisch" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "Chinesisch" @@ -372,7 +398,7 @@ msgstr "Vom übergeordneten Element geteilt" msgid "Split child item" msgstr "Unterobjekt geteilt" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" msgstr "Zum Kunden geschickt" @@ -432,27 +458,27 @@ msgstr "Überschuss darf 100% nicht überschreiten" msgid "Overage must be an integer value or a percentage" msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "Element löschen" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "Häkchen setzen um Löschung von Objekt zu bestätigen" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "Benutzerinformationen bearbeiten" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "Passwort eingeben" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "Passwörter stimmen nicht überein" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "Systeminformationen" @@ -509,8 +535,8 @@ msgstr "geplantes Bestelldatum" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "Zieldatum" @@ -522,19 +548,18 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung." #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung." #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "Anzahl" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "Bauauftrag als vollständig markieren" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "Lagerort" @@ -604,13 +632,13 @@ msgid "Location of completed parts" msgstr "Lagerort der Endprodukte" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:62 order/models.py:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "Status" @@ -649,7 +677,7 @@ msgstr "Ungültige Wahl für übergeordneten Bauauftrag" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "Bauauftrag" @@ -657,9 +685,9 @@ msgstr "Bauauftrag" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" @@ -669,14 +697,13 @@ msgstr "Bauaufträge" msgid "Build Order Reference" msgstr "Bauauftragsreferenz" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "Referenz" @@ -695,28 +722,28 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "Teil" @@ -764,7 +791,7 @@ msgstr "Fertiggestellte Teile" msgid "Number of stock items which have been completed" msgstr "Anzahl der fertigen BestandsObjekte" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "Bauauftrags-Status" @@ -772,7 +799,7 @@ msgstr "Bauauftrags-Status" msgid "Build status code" msgstr "Bau-Statuscode" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "Losnummer" @@ -780,16 +807,16 @@ msgstr "Losnummer" msgid "Batch code for this build output" msgstr "Losnummer für dieses Endprodukt" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "Erstelldatum" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "geplantes Fertigstellungsdatum" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "Fertigstellungsdatum" @@ -797,7 +824,7 @@ msgstr "Fertigstellungsdatum" msgid "completed by" msgstr "Fertiggestellt von" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "Aufgegeben von" @@ -808,9 +835,9 @@ msgstr "Nutzer der diesen Bauauftrag erstellt hat" #: 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "Verantwortlicher Benutzer" @@ -821,34 +848,33 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist" #: 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "Externer Link" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: build/models.py:310 part/models.py:715 stock/models.py:509 msgid "Link to external URL" msgstr "Link zu einer externen URL" #: build/models.py:314 build/templates/build/navbar.html:52 -#: company/models.py:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "Notizen" @@ -881,11 +907,11 @@ msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "Reserviermenge ({n}) muss kleiner Bestandsmenge ({q}) sein. Zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "Zu viele BestandsObjekt zugewiesen" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "Ausgewähltes BestandsObjekt nicht Stückliste für Teil '{p}' gefunden" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "Bauauftrag" @@ -912,9 +938,9 @@ msgstr "Bauauftrag starten um Teile zuzuweisen" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "BestandsObjekt" @@ -936,12 +962,12 @@ msgstr "Ziel-BestandsObjekt" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "Seriennummer" @@ -993,7 +1019,7 @@ msgstr "Lagerbestand wurde Bauauftrag noch nicht vollständig zugewiesen" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "Admin" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "Überfällig" @@ -1039,7 +1065,7 @@ msgstr "Bauauftrag abbrechen" #: build/templates/build/build_base.html:114 msgid "Delete Build" -msgstr "" +msgstr "Bauauftrag löschen" #: build/templates/build/build_base.html:124 #: build/templates/build/detail.html:15 @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "Fortschritt" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "Auftrag" @@ -1148,8 +1174,8 @@ msgstr "BestandsObjekt zur Zuordnung zum ausgewählten Endprodukt auswählen" #: 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 "Der zugeordnete Bestand wird in den folgenden Endprodukten verbaut werden:
      %(output)s" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" +msgstr "Der zugeordnete Bestand wird in den folgenden Endprodukten verbaut werden:
      %(output)s" #: build/templates/build/create_build_item.html:17 #, python-format @@ -1172,9 +1198,9 @@ msgstr "Ausgangs-Lager" msgid "Stock can be taken from any available location." msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden." -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "Ziel-Lager" @@ -1184,16 +1210,16 @@ msgstr "Ziel-Lagerort nicht angegeben" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 msgid "Batch" msgstr "Losnummer" #: 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "Erstellt" @@ -1201,7 +1227,7 @@ msgstr "Erstellt" msgid "No target date set" msgstr "Kein Ziel-Datum gesetzt" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "Fertig" @@ -1225,7 +1251,7 @@ msgstr "Lagerbestand Bauauftrag zuweisen" msgid "Auto Allocate" msgstr "Automatisch zuweisen" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "Bestandszuordnung aufheben" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "Benötigte Teile bestellen" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "Teile bestellen" @@ -1288,8 +1314,8 @@ msgstr "Fertiggestellte Endprodukte" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "Anhänge" @@ -1298,48 +1324,48 @@ msgstr "Anhänge" msgid "Build Notes" msgstr "Bauauftrags-Notizen" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "Anmerkungen bearbeiten" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "Anhang hinzufügen" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "Anhang bearbeiten" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "Löschvorgang bestätigen" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "Anhang löschen" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "Bauauftrag-details" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "Details" @@ -1501,9 +1527,9 @@ msgstr "Teil muss aktuell im Bestand sein" msgid "Stock item is over-allocated" msgstr "BestandObjekt ist zu oft zugewiesen" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "Verfügbar" @@ -1539,7 +1565,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:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "Datei" @@ -1556,546 +1582,594 @@ msgstr "{name.title()} Datei" msgid "Select {name} file to upload" msgstr "{name} Datei zum Hochladen auswählen" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "Einstellungs-Wert" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "Nur Ganzzahl eingeben" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "Wahrheitswert erforderlich" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "Nur Ganzzahl eingeben" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "Schlüsseltext muss eindeutig sein" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "InvenTree Instanzname" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "Kurze Beschreibung der Instanz" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "Name der Instanz verwenden" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "Den Namen der Instanz in der Titelleiste verwenden" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "Firmenname" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "interner Firmenname" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "Basis-URL" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "Basis-URL für dieses Instanz" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "Standardwährung" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "Standardwährung" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "Von URL herunterladen" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "Bacode-Feature verwenden" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "Barcode-Scanner Unterstützung" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "IPN Regex" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "RegEx Muster für die Zuordnung von Teil-IPN" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "Ändern von IPN erlaubt" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "Teil-Stückliste kopieren" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird " -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "Teil-Parameter kopieren" -#: common/models.py:597 +#: common/models.py:583 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:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "Teil-Testdaten kopieren" -#: common/models.py:604 +#: common/models.py:590 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:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "Kategorie-Parametervorlage kopieren" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "Vorlage" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "Baugruppe" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "Komponente" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "Teile können standardmäßig in Baugruppen benutzt werden" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "Kaufbar" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "Artikel sind grundsätzlich kaufbar" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "Verkäuflich" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "Artikel sind grundsätzlich verkaufbar" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "Nachverfolgbar" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "Artikel sind grundsätzlich verfolgbar" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "Teile sind grundsätzlich virtuell" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "Import in Ansichten anzeigen" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "Importassistent in einigen Teil-Ansichten anzeigen" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "Preis in Formularen anzeigen" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "Teilpreis in einigen Formularen anzeigen" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "Verwandte Teile anzeigen" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "Verwandte Teile eines Teils anzeigen" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "Ausgangsbestand erstellen" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "Ausgangsbestand beim Erstellen von Teilen erstellen" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "Interne Preise" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "Interne Preise für Teile aktivieren" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "Interner Preis als Stückliste-Preis" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "Interner Preis (falls vorhanden) in Stücklisten-Preisberechnungen verwenden" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "Entwickler-Modus" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "Berichte im Entwickler-Modus generieren (als HTML)" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "Seitengröße" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "Standardseitenformat für PDF-Bericht" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "Test-Berichte" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "Erstellung von Test-Berichten aktivieren" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "Bestands-Ablauf" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "Ablaufen von Bestand ermöglichen" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "Abgelaufenen Bestand verkaufen" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "Verkauf von abgelaufenem Bestand erlaubt" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "Bestands-Stehzeit" -#: common/models.py:756 +#: common/models.py:742 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:758 +#: common/models.py:744 msgid "days" msgstr "Tage" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "Abgelaufenen Bestand verbauen" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "Verbauen von abgelaufenen Bestand erlaubt" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "Bestands-Eigentümerkontrolle" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "Gruppieren nach Teil" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "Bestand in Tabellen anhand von Teil-Referenz gruppieren" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "Bauauftrag-Referenz Präfix" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "Präfix für Bauauftrag-Referenz" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "Bauauftrag-Referenz RegEx" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "RegEx Muster für die Zuordnung von Bauauftrag-Referenzen" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "Auftrags-Referenz Präfix" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "Präfix für Auftrags-Referenz" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "Bestellungs-Referenz Präfix" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "Präfix für Bestellungs-Referenz" -#: common/models.py:826 +#: common/models.py:794 +msgid "Enable build" +msgstr "Bauaufträge aktivieren" + +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "Aufträge aktivieren" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "Bestellungen aktivieren" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "Markierte Teile anzeigen" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "Zeige markierte Teile auf der Startseite" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "Neueste Teile anzeigen" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "Zeige neueste Teile auf der Startseite" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "Aktuelle Teile-Stände" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "Anzahl der neusten Teile auf der Startseite" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "Nicht validierte Stücklisten anzeigen" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "Neueste Lagerbestand Änderungen anzeigen" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "aktueller Bestand" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "Anzahl des geänderten Bestands auf der Startseite" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "Niedrigen Bestand anzeigen" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "Zeige geringen Lagerbestand auf der Startseite" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "Benötigten Bestand anzeigen" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "Zeige Bestand für Bauaufträge auf der Startseite" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "Abgelaufenen Bestand anzeigen" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "Zeige Abgelaufene Lagerbestände auf der Startseite" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "Ausstehende Bauaufträge anzeigen" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "Zeige ausstehende Bauaufträge auf der Startseite" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "Zeige überfällige Bauaufträge" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "Zeige überfällige Bauaufträge auf der Startseite" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "Ausstehende POs anzeigen" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "Ausstehende POs auf der Startseite anzeigen" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "Überfällige POs anzeigen" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "Überfällige POs auf der Startseite anzeigen" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "Ausstehende SOs anzeigen" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "Ausstehende SOs auf der Startseite anzeigen" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "Überfällige SOs anzeigen" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "Überfällige SOs auf der Startseite anzeigen" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" -msgstr "" +msgstr "Berichte inline anzeigen" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" +msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "Anzahl Suchergebnisse" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "Anzahl der Ergebnisse, die in der Vorschau angezeigt werden sollen" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "Preis" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "Standard" @@ -2123,7 +2197,7 @@ msgstr "Benutzereinstellungen ändern" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "Teile importiert" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "URL" msgid "Image URL" msgstr "Bild-URL" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "Firmenbeschreibung" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "Firmenbeschreibung" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "Website" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "Firmenwebsite Adresse/URL" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "Adresse" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "Firmenadresse" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "Kontakt-Tel." -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "Kontakt-Telefon" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "Email" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "Kontakt-Email" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "Kontakt" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "Anlaufstelle" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: 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:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "Link auf externe Firmeninformation" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "Bild" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "ist Kunde" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "Verkaufen Sie Teile an diese Firma?" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "ist Zulieferer" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "Kaufen Sie Teile von dieser Firma?" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "ist Hersteller" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "Produziert diese Firma Teile?" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "Währung" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "Standard-Währung für diese Firma" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "Basisteil" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "Teil auswählen" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "Hersteller" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "Hersteller auswählen" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "MPN" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "Hersteller-Teilenummer" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "Externe URL für das Herstellerteil" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "Teilbeschreibung des Herstellers" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "Herstellerteil" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "Parametername" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "Wert" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "Parameterwert" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "Einheiten" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "Parametereinheit" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "Zulieferer" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "Zulieferer auswählen" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "SKU (Lagerbestandseinheit)" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "Lagerbestandseinheit (SKU) des Zulieferers" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "Herstellerteil auswählen" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "Teil-URL des Zulieferers" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "Notiz" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "Verpackungen" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "Teile-Verpackungen" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "Vielfache" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "Mehrere bestellen" @@ -2420,7 +2499,7 @@ msgstr "Währungscode" #: company/templates/company/company_base.html:9 #: company/templates/company/company_base.html:35 -#: templates/InvenTree/search.html:304 templates/js/translated/company.js:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "Firma" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "Bild von URL herunterladen" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "Bestellung anlegen" @@ -2460,22 +2539,22 @@ msgstr "verwendet Standard-Währung" msgid "Phone" msgstr "Telefon" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "Kunde" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "Bild hochladen" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "Zuliefererteile" @@ -2490,8 +2569,8 @@ msgstr "Neues Zuliefererteil anlegen" msgid "New Supplier Part" msgstr "Neues Zuliefererteil" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "Neues Zuliefererteil" msgid "Options" msgstr "Optionen" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "Teile bestellen" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "Teile löschen" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "Teile löschen" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "Herstellerteile" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "Neues Herstellerteil anlegen" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "Neues Herstellerteil" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "Zulieferer-Bestand" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "Bestellungen" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "Neue Bestellung anlegen" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "Neue Bestellung" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "Aufträge" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "Neuen Auftrag anlegen" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Neuer Auftrag" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "Zugeordneter Bestand" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "Firmenbemerkungen" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 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:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "Alle ausgewählten Zulieferteile werden gelöscht" @@ -2609,17 +2688,17 @@ 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:109 +#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116 msgid "Order part" msgstr "Teil bestellen" #: company/templates/company/manufacturer_part.html:45 -#: templates/js/translated/company.js:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "Herstellerteil bearbeiten" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "Herstellerteil löschen" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "Zulieferer" @@ -2649,8 +2728,8 @@ msgstr "Zuliefererteil entfernen" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "Löschen" @@ -2659,8 +2738,8 @@ msgstr "Löschen" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "Parameter" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "Parameter löschen" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "Parameter hinzufügen" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "Herstellerteil-Bestand" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "Lagerbestand" @@ -2717,41 +2795,41 @@ msgstr "Herstellerteil-Bestellungen" msgid "Orders" msgstr "Bestellungen" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "Hergestellte Teile" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "Zuliefererteile" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "Teilbestand" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "Zuliefererteil" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "Zuliefererteil bearbeiten" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "Zuliefererteil entfernen" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "Teil bestellen" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "Preisstaffel hinzufügen" @@ -2789,11 +2867,11 @@ msgstr "Preisstaffel hinzufügen" msgid "No price break information found" msgstr "Keine Informationen zur Preisstaffel gefunden" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "Preisstaffel löschen" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "Preisstaffel bearbeiten" @@ -2817,8 +2895,8 @@ msgstr "Bepreisung" msgid "New Supplier" msgstr "Neuer Zulieferer" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "Hersteller" @@ -2826,8 +2904,8 @@ msgstr "Hersteller" msgid "New Manufacturer" msgstr "Neuer Hersteller" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "Kunden" @@ -2929,6 +3007,10 @@ msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" msgid "Part query filters (comma-separated value of key=value pairs)" msgstr "" +#: order/api.py:302 +msgid "Destination location must be specified" +msgstr "Ziel-Lagerort muss angegeben werden" + #: order/forms.py:30 order/templates/order/order_base.html:47 msgid "Place order" msgstr "Bestellung aufgeben" @@ -2978,11 +3060,11 @@ msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind" msgid "Order notes" msgstr "Bestell-Notizen" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "Bestell-Referenz" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "Bestellungs-Status" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "Zulieferer-Referenz" @@ -3023,7 +3105,7 @@ msgstr "Geplantes Lieferdatum für Auftrag." msgid "Date order was completed" msgstr "Datum an dem der Auftrag fertigstellt wurde" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" @@ -3031,150 +3113,182 @@ msgstr "Anzahl muss größer Null sein" msgid "Part supplier must match PO supplier" msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "Nur Teile aufgegebener Bestllungen können empfangen werden" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "Anzahl muss eine positive Zahl sein" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "Firma an die die Teile verkauft werden" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "Kundenreferenz" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "Bestellreferenz" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "Zieldatum für Auftrags-Fertigstellung." -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "Versanddatum" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "Versand von" -#: order/models.py:610 +#: order/models.py:616 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:707 +#: order/models.py:713 msgid "Item quantity" msgstr "Anzahl" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "Position - Referenz" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "Position - Notizen" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "Bestellung" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "Bestellung" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "Zuliefererteil" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "Empfangen" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "Preis" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "Preis pro Einheit" -#: order/models.py:785 +#: order/models.py:797 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:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "Stückverkaufspreis" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "BestandsObjekt wurde nicht zugewiesen" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kann BestandsObjekt keiner Zeile mit einem anderen Teil hinzufügen" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "Kann BestandsObjekt keiner Zeile ohne Teil hinzufügen" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl für BestandsObjekt mit Seriennummer muss 1 sein" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "Position" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "Position" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "BestandsObjekt für Zuordnung auswählen" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "Kaufpreiswährung" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "Barcode-Hash" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "Barcode ist bereits in Verwendung" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "Verkaufspreis-Währung" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "Bestellung bearbeiten" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "Neuer Lagerort" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "Neuen Lagerort anlegen" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "Datei zur Bestellung hochladen" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,8 +3481,8 @@ msgstr "Kein Preis" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" -msgstr "Zulieferer auswählen für %(name)s" +msgid "Select a supplier for %(name)s" +msgstr "Zulieferer auswählen für %(name)s" #: order/templates/order/order_wizard/select_parts.html:77 #: part/templates/part/set_category.html:32 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "Positionen" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "Bestellungs-Positionen" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "Position hinzufügen" @@ -3436,49 +3548,6 @@ msgstr "Position hinzufügen" msgid "Order Notes" msgstr "Notizen zur Bestellung" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "Position bearbeiten" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "Position löschen" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "Keine Positionen gefunden" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "Summe" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "Stück-Preis" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "Gesamtpreis" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "Position bearbeiten" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "Position löschen" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "Position empfangen" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "Berichte drucken" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" -msgstr "Ausstehende Teile für %(order)s - %(desc)s empfangen" +msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgstr "Ausstehende Teile für %(order)s - %(desc)s empfangen" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "Bestellnummer" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "Bestellt" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "Auftragsdetails" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "Kundenreferenz" @@ -3563,71 +3632,102 @@ msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar i msgid "Sales Order Items" msgstr "Auftrags-Positionen" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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 "Aktionen" -#: order/templates/order/sales_order_detail.html:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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 "Bestands-Zuordnung bearbeiten" -#: order/templates/order/sales_order_detail.html:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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 "Bestands-Zuordnung löschen" -#: order/templates/order/sales_order_detail.html:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "Keine passenden Positionen gefunden" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "ID" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: order/templates/order/sales_order_detail.html:354 +#: templates/js/translated/order.js:481 +msgid "Total" +msgstr "Summe" + +#: order/templates/order/sales_order_detail.html:377 +#: templates/js/translated/order.js:534 templates/js/translated/part.js:1343 +#: templates/js/translated/part.js:1554 +msgid "Unit Price" +msgstr "Stück-Preis" + +#: order/templates/order/sales_order_detail.html:384 +#: templates/js/translated/order.js:543 +msgid "Total price" +msgstr "Gesamtpreis" + +#: order/templates/order/sales_order_detail.html:405 +#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026 msgid "Allocated" msgstr "Zugeordnet" -#: order/templates/order/sales_order_detail.html:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "Erledigt" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "PO" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "Seriennummern zuweisen" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: order/templates/order/sales_order_detail.html:477 +#: templates/js/translated/build.js:796 msgid "Allocate stock" msgstr "Lagerbestand zuweisen" -#: order/templates/order/sales_order_detail.html:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "Lagerbestand kaufen" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: order/templates/order/sales_order_detail.html:484 +#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227 msgid "Build stock" msgstr "Lagerbestand bauen" -#: order/templates/order/sales_order_detail.html:486 -#: order/templates/order/sales_order_detail.html:605 +#: order/templates/order/sales_order_detail.html:487 +#: order/templates/order/sales_order_detail.html:606 msgid "Calculate price" msgstr "Preis berechnen" #: order/templates/order/sales_order_detail.html:490 +#: templates/js/translated/order.js:616 +msgid "Edit line item" +msgstr "Position bearbeiten" + +#: order/templates/order/sales_order_detail.html:491 msgid "Delete line item " msgstr "Position löschen " -#: order/templates/order/sales_order_detail.html:611 +#: order/templates/order/sales_order_detail.html:519 +#: templates/js/translated/order.js:403 +msgid "Edit Line Item" +msgstr "Position bearbeiten" + +#: order/templates/order/sales_order_detail.html:529 +#: templates/js/translated/order.js:415 +msgid "Delete Line Item" +msgstr "Position löschen" + +#: order/templates/order/sales_order_detail.html:612 msgid "Update Unit Price" msgstr "Stückpreis aktualisieren" @@ -3814,12 +3914,28 @@ 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/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "Muss größer als 0 sein" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "Muss eine gültige Nummer sein" + +#: part/api.py:719 +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 +msgid "This field is required" +msgstr "Dieses Feld ist erforderlich" + +#: 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 msgid "Default Location" msgstr "Standard-Lagerort" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "Verfügbarer Lagerbestand" @@ -3879,7 +3995,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:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "Ausgangsteil" @@ -3923,391 +4039,391 @@ msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen" msgid "Input quantity for price calculation" msgstr "Menge für die Preisberechnung" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "Standard-Lagerort für Teile dieser Kategorie" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "Standard Stichwörter" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "Teil-Kategorien" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "Ungültige Auswahl für übergeordnetes Teil" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, 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:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "Nächste verfügbare Seriennummern wären" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "Nächste verfügbare Seriennummer ist" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "Die neuste Seriennummer ist" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "Name des Teils" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "Ist eine Vorlage" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "Ist dieses Teil eine Vorlage?" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "Ist dieses Teil eine Variante eines anderen Teils?" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "Variante von" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "Beschreibung des Teils" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "Schlüsselwörter" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "Kategorie" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "IPN (Interne Produktnummer)" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "Interne Teilenummer" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "Revision" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "Standard Zulieferer" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "Standard Zuliefererteil" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "Standard Ablaufzeit" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "Ablauf-Zeit (in Tagen) für Lagerbestand dieses Teils" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "Minimaler Lagerbestand" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Lagerbestand" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "Stock Keeping Units (SKU) für dieses Teil" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "Hat dieses Teil Tracking für einzelne Objekte?" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "Aktiv" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "Ist dieses Teil aktiv?" -#: part/models.py:836 +#: part/models.py:838 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:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "Bemerkungen - unterstüzt Markdown-Formatierung" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "Prüfsumme der Stückliste gespeichert" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "Stückliste kontrolliert von" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "BOM Kontrolldatum" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "Erstellungs-Nutzer" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "Mehrere verkaufen" -#: part/models.py:2080 +#: part/models.py:2096 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:2097 +#: part/models.py:2113 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:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "Benötigt" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "Erfordert Wert" -#: part/models.py:2136 +#: part/models.py:2152 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:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:2142 +#: part/models.py:2158 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:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" -msgstr "" +msgstr "Ungültiges Zeichen im Vorlagename ({c})" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "Einheit des Parameters" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "Wert" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "Untergeordnetes Teil" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "Optional" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "Überschuss" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "Geerbt" -#: part/models.py:2359 +#: part/models.py:2375 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:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "Varianten zulassen" -#: part/models.py:2365 +#: part/models.py:2381 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" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "Stücklisten-Position" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:2619 +#: part/models.py:2635 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?" @@ -4317,18 +4433,18 @@ msgstr "Sie haben keine Berechtigung zum Bearbeiten der Stückliste." #: part/templates/part/bom.html:14 #, 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.
      " +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 #, 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" +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 #, python-format -msgid "The BOM for %(part)s has not been validated." -msgstr "Die Stückliste für %(part)s wurde noch nicht kontrolliert" +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" @@ -4374,34 +4490,35 @@ msgstr "Dieses Teil hat bereits eine Stückliste" msgid "Select Part" msgstr "Teil auswählen" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" -msgstr "Stückliste-Datei hochgeladen" +#: part/templates/part/bom_upload/upload_file.html:13 +#: part/templates/part/bom_upload/upload_file.html:16 +msgid "Return To BOM" +msgstr "Zurück zur Stückliste" -#: part/templates/part/bom_upload/upload_file.html:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "Stückliste hochladen" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "Anforderungen für Stückliste-Datei" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 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:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "Vorlage für Stückliste" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "Jedes Teil muss bereits in der Datenbank bestehen" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" -msgstr "Bestätigen Sie das die Stückliste für
      %(part)s korrekt ist" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgstr "Bestätigen Sie das die Stückliste für
      %(part)s korrekt ist" #: part/templates/part/bom_validate.html:9 msgid "This will validate each line in the BOM." @@ -4435,7 +4552,7 @@ msgstr "Pfad zur Kategorie" msgid "Category Description" msgstr "Kategorie-Beschreibung" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "Teile (inklusive Unter-Kategorien)" msgid "Export Part Data" msgstr "Teile-Daten exportieren" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "Exportieren" @@ -4470,28 +4587,32 @@ msgid "Set Category" msgstr "Teil-Kategorie auswählen" #: part/templates/part/category.html:141 +msgid "Print Labels" +msgstr "Label drucken" + +#: part/templates/part/category.html:142 msgid "Export Data" msgstr "Exportieren" -#: part/templates/part/category.html:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "Listenansicht anzeigen" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "Rasteransicht anzeigen" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "Teilparameter" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" -msgstr "" +msgstr "Teil-Kategorie hinzufügen" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" -msgstr "" +msgstr "Teil hinzufügen" #: part/templates/part/category_delete.html:5 msgid "Are you sure you want to delete category" @@ -4533,7 +4654,7 @@ msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die oberste Kat. v msgid "Import Parts" msgstr "Teile importieren" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "Teil duplizieren" @@ -4554,8 +4675,8 @@ msgstr "Teil evtl. Duplikat dieser Teile" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" -msgstr "%(full_name)s - %(desc)s (%(match_per)s%% übereinstimmend)" +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 Stock" @@ -4563,10 +4684,10 @@ msgstr "Teilbestand" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" -msgstr "Lagerbestand aller Varianten von %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" +msgstr "Lagerbestand aller Varianten von %(full_name)s" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "Teil Test-Vorlagen" @@ -4584,9 +4705,9 @@ msgstr "Neue Bestellung" #: part/templates/part/detail.html:90 msgid "Sales Order Allocations" -msgstr "" +msgstr "Verkaufsauftragszuweisungen" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "Teil Varianten" @@ -4602,8 +4723,8 @@ msgstr "neue Variante anlegen" msgid "Add new parameter" msgstr "Parameter hinzufügen" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "Verknüpfte Teile" @@ -4611,8 +4732,8 @@ msgstr "Verknüpfte Teile" msgid "Add Related" msgstr "Verknüpftes Teil hinzufügen" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "Stückliste" @@ -4630,7 +4751,7 @@ msgstr "Neuen Bauauftrag beginnen" #: part/templates/part/detail.html:274 msgid "Build Order Allocations" -msgstr "" +msgstr "Bauauftragszuweisungen" #: part/templates/part/detail.html:283 msgid "Part Suppliers" @@ -4644,50 +4765,42 @@ msgstr "Teil-Hersteller" msgid "Delete manufacturer parts" msgstr "Herstellerteile löschen" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "Ausgewählte Stücklistenpositionen löschen?" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "Stücklisten-Position anlegen" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "Testergebnis-Vorlage hinzufügen" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "Testergebnis-Vorlage bearbeiten" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "Testergebnis-Vorlage löschen" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "Teilenotizen bearbeiten" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" -msgstr "" +msgstr "Stückpreis Einkauf - %(currency)s" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" -msgstr "" +msgstr "Stückpreis Differenz - %(currency)s" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" -msgstr "" +msgstr "Stückpreis Zulieferer - %(currency)s" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "Stückpreis - %(currency)s" @@ -4701,19 +4814,19 @@ msgstr "Unzureichende Benutzerrechte." msgid "Import Parts from File" msgstr "Teile aus Datei importieren" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "Varianten" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "Benutzt in" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "Preise" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "Testvorlagen" @@ -4721,148 +4834,149 @@ msgstr "Testvorlagen" msgid "Part List" msgstr "Teileliste" -#: part/templates/part/part_base.html:30 +#: 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)" -#: part/templates/part/part_base.html:33 +#: 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:36 +#: 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:39 +#: 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:42 +#: 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:45 +#: 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:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "Teil favorisieren" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "Barcode Aktionen" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "QR-Code anzeigen" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "Label drucken" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "Kosteninformationen ansehen" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "Bestands-Aktionen" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "Lagerbestand zählen" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "Teilbestand verschieben" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "Teile Aktionen" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "Teil duplizieren" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "Teil bearbeiten" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "Teil löschen" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, 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:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "Auf Lager" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "Für Bauaufträge benötigt" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "Benötigt für Aufträge" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "Zu Bauaufträgen zugeordnet" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "Herstellbar" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "Im Bau" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +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:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "Berechnen" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" -msgstr "" +msgstr "Keine passenden Bilder gefunden" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" -msgstr "" - -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" +msgstr "Teildetails ausblenden" #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" @@ -4870,46 +4984,54 @@ msgstr "Zulieferer-Preise" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "Stückpreis" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "Gesamtkosten" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "Keine Zulieferer-Preise verfügbar" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "Stücklistenpreise" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "Kaufpreis pro Einheit" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "Gesamter Kaufpreis" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "Anmerkung: Stücklistenbepreisung für dieses Teil ist unvollständig" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "Keine Stücklisten-Preise verfügbar" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "Interner Preis" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "Keine Preise für dieses Teil verfügbar" @@ -4917,32 +5039,39 @@ msgstr "Keine Preise für dieses Teil verfügbar" msgid "Select from existing images" msgstr "Aus vorhandenen Bildern auswählen" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" -msgstr "Sind Sie sicher, dass Sie das Teil '%(full_name)s' löschen wollen?" +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:12 +#: part/templates/part/partial_delete.html:17 +#, python-format +msgid "Are you sure you want to delete part '%(full_name)s'?" +msgstr "Sind Sie sicher, dass Sie das Teil '%(full_name)s' löschen wollen?" + +#: 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 "Dieser Teil wird in Stücklisten für %(count)s andere Teile verwendet. Wenn Sie dieses Teil löschen, werden die Stücklisten für die folgenden Teile aktualisiert" -#: 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 "Es sind %(count)s BestandsObjekte für diesen Teil definiert. Wenn Sie diesen Teil löschen, werden auch die folgenden Bestandseinträge gelöscht:" -#: 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 "Es sind %(count)s Hersteller für diesen Teil definiert. Wenn Sie diesen Teil löschen, werden auch die folgenden Herstellerteile gelöscht:" -#: 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 "Es sind %(count)s Zulieferer für diesen Teil definiert. Wenn Sie diesen Teil löschen, werden auch die folgenden Zuliefererteile gelöscht:" -#: 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 "Es gibt %(count)s einzigartige Teile, die für '%(full_name)s' verfolgt werden. Das Löschen dieses Teils wird diese Tracking-Informationen dauerhaft entfernen." @@ -4963,53 +5092,53 @@ msgstr "Einkaufpreis anzeigen" msgid "Show BOM cost" msgstr "Stücklisten-Kosten" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "Verkaufskosten anzeigen" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "Verkaufspreis anzeigen" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "Berechnungsparameter" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "Zuliefererkosten" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "Zur Übersicht gehen" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "Bestandspreise" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "Für dieses Teil sind keine Bestandspreise verfügbar." -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "Interne Kosten" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" -msgstr "" +msgstr "Interne Preisspanne hinzufügen" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "Stücklistenkosten" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "Verkaufskosten" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "Keine Verkaufsgeschichte für diesen Teil verfügbar." @@ -5017,8 +5146,8 @@ 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:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "Kein Bestand" @@ -5032,10 +5161,10 @@ msgstr "Neue Teilevariante anlegen" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." -msgstr "Neue Variante von Vorlage anlegen '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." +msgstr "Neue Variante von Vorlage anlegen '%(full_name)s'." -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "Unbekannte Datenbank" @@ -5116,53 +5245,53 @@ msgstr "Teil wurde gelöscht" msgid "Part Pricing" msgstr "Teilbepreisung" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "Teilparametervorlage anlegen" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "Teilparametervorlage bearbeiten" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "Teilparametervorlage löschen" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "Teil-Kategorie bearbeiten" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "Teil-Kategorie löschen" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "Teil-Kategorie wurde gelöscht" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "Kategorieparametervorlage anlegen" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "Kategorieparametervorlage bearbeiten" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "Kategorieparametervorlage löschen" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "neue Preisstaffel hinzufügt" -#: part/views.py:1802 -msgid "Edit Internal Price Break" -msgstr "" - #: part/views.py:1810 +msgid "Edit Internal Price Break" +msgstr "Interne Preisspanne bearbeiten" + +#: part/views.py:1818 msgid "Delete Internal Price Break" -msgstr "" +msgstr "Interne Preisspanne löschen" #: report/models.py:182 msgid "Template name" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "Testergebnisse" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "Test" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "Ergebnis" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "Datum" @@ -5288,51 +5417,51 @@ msgstr "bestanden" msgid "Fail" msgstr "fehlgeschlagen" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "Falsch formatierte Daten" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "Ungültige Menge" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "Menge muss größer als Null sein" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "Bestand für {n} Objekte geändert" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "Die angegebene Menge überschreitet die Lagermenge" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "Gültiger Standort muss angegeben werden" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "{n} Teile nach {loc} bewegt" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "Ablaufdatum" @@ -5384,258 +5513,266 @@ msgstr "nicht mehr verbauen bestätigen" msgid "Confirm removal of installed stock items" msgstr "Entfernen der verbauten BestandsObjekt bestätigen" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "Besitzer" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "Besitzer auswählen" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "Ein BestandsObjekt mit dieser Seriennummer existiert bereits" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "Teile-Typ ('{pf}') muss {pe} sein" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein" -#: stock/models.py:363 +#: stock/models.py:369 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:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "Teil kann nicht zu sich selbst gehören" -#: stock/models.py:391 +#: stock/models.py:397 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:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "Referenz verweist nicht auf das gleiche Teil" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "Eltern-BestandsObjekt" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "Basis-Teil" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "Passendes Zuliefererteil für dieses BestandsObjekt auswählen" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Bestand-Lagerort" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "Die Verpackung dieses BestandsObjekt ist gelagert in" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "verbaut in" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "Ist dieses Teil in einem anderen verbaut?" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "Seriennummer für dieses Teil" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "Losnummer für dieses BestandsObjekt" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "Bestand" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "Quellbau" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "Bauauftrag für dieses BestandsObjekt" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "Quelle Bestellung" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "Bestellung für dieses BestandsObjekt" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "Ziel-Auftrag" -#: stock/models.py:551 +#: stock/models.py:557 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" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "Löschen wenn leer" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "Dieses BestandsObjekt löschen wenn Bestand aufgebraucht" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "BestandsObjekt-Notizen" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "Preis für eine Einheit bei Einkauf" -#: stock/models.py:1051 +#: stock/models.py:599 +msgid "Scheduled for deletion" +msgstr "Zur Löschung vorgesehen" + +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" +msgstr "" + +#: stock/models.py:1063 msgid "Part is not set as trackable" msgstr "Teil ist nicht verfolgbar" -#: stock/models.py:1057 +#: stock/models.py:1069 msgid "Quantity must be integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: stock/models.py:1063 +#: stock/models.py:1075 #, 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:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "Anzahl stimmt nicht mit den Seriennummern überein" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Seriennummern {exists} existieren bereits" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "BestandsObjekt kann nicht bewegt werden, da kein Bestand vorhanden ist" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "Name des Tests" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "Test Notizen" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "Informationen zum Lagerbestands-Tracking" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "neuer Eintrag" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "Kind-BestandsObjekt" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "Dieses BestandsObjekt hat keine Kinder" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "Testdaten" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "Testdaten löschen" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "Testdaten hinzufügen" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "Test-Bericht" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "Installierte BestandsObjekte" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "BestandsObjekt installiert" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "Testergebnis hinzufügen" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "Testergebnis bearbeiten" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "überfällig" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "Barcode abhängen" @@ -5695,11 +5832,11 @@ msgstr "Deinstallieren" #: stock/templates/stock/item_base.html:133 msgid "Install stock item" -msgstr "" +msgstr "BestandsObjekt installieren" #: stock/templates/stock/item_base.html:133 msgid "Install" -msgstr "" +msgstr "Installieren" #: stock/templates/stock/item_base.html:145 msgid "Convert to variant" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "nächste Seite" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "Kein Lagerort gesetzt" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "Dieses BestandsObjekt läuft am %(item.expiry_date)s ab" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "Zuletzt aktualisiert" @@ -5825,12 +5962,12 @@ msgstr "Sind Sie sicher, dass Sie dieses BestandsObjekt löschen wollen?" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." -msgstr "Damit werden %(qty)s Elemente vom Bestand von %(full_name)s entfernt." +msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgstr "Damit werden %(qty)s Elemente vom Bestand von %(full_name)s entfernt." #: stock/templates/stock/item_install.html:8 msgid "Install another Stock Item into this item." -msgstr "" +msgstr "Ein weiteres BestandsObjekt in dieses Teil installiert." #: stock/templates/stock/item_install.html:11 #: stock/templates/stock/item_install.html:24 @@ -5916,7 +6053,7 @@ msgstr "Unter-Lagerorte" msgid "Stock Details" msgstr "Objekt-Details" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "Bestand-Lagerorte" @@ -5975,8 +6112,8 @@ msgstr "BestandsObjekt 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" +msgid "This stock item is current an instance of %(part)s" +msgstr "BestandsObjekt 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." @@ -6039,7 +6176,7 @@ msgstr "BestandsObjekt-QR-Code" msgid "Uninstall Stock Items" msgstr "BestandsObjekte deinstallieren" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "Bestands-Anpassung bestätigen" @@ -6059,7 +6196,7 @@ msgstr "Neuen Lagerort erstellen" msgid "Serialize Stock" msgstr "Lagerbestand erfassen" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "Neues BestandsObjekt hinzufügen" @@ -6171,14 +6308,6 @@ msgstr "Suchergebnisse" msgid "Enter a search query" msgstr "Eine Sucheanfrage eingeben" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "an Kunde versand" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "Kein Lagerort gesetzt" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "Barcode-Einstellungen" @@ -6240,7 +6369,7 @@ msgstr "Startseite" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "Suche" @@ -6248,16 +6377,16 @@ msgstr "Suche" #: templates/InvenTree/settings/navbar.html:33 #: templates/InvenTree/settings/navbar.html:35 msgid "Labels" -msgstr "" +msgstr "Labels" #: templates/InvenTree/settings/navbar.html:39 #: templates/InvenTree/settings/navbar.html:41 msgid "Reports" -msgstr "" +msgstr "Berichte" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "Einstellungen" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "Keine Kategorie-Parametervorlagen gefunden" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "Vorlage bearbeiten" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "Vorlage löschen" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "Keine Teilparametervorlagen gefunden" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "Kontoeinstellungen" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "Bearbeiten" @@ -6397,11 +6527,11 @@ msgstr "Spracheinstellung" #: templates/InvenTree/settings/user.html:89 #, python-format msgid "%(lang_translated)s%% translated" -msgstr "" +msgstr "%(lang_translated)s%% übersetzt" #: templates/InvenTree/settings/user.html:91 msgid "No translations available" -msgstr "" +msgstr "Keine Übersetzungen verfügbar" #: templates/InvenTree/settings/user.html:98 msgid "Set Language" @@ -6409,12 +6539,12 @@ msgstr "Sprache festlegen" #: templates/InvenTree/settings/user.html:103 msgid "Help the translation efforts!" -msgstr "" +msgstr "Hilf bei der Übersetzung!" #: templates/InvenTree/settings/user.html:104 #, python-format msgid "Native language translation of the InvenTree web application is
      community contributed via crowdin. Contributions are welcomed and encouraged." -msgstr "" +msgstr "Die Übersetzung von InvenTree wird von Nutzern mit Crowdin betrieben. Wir ermutigen zur und freuen uns über jeden Mithilfe!" #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" @@ -6422,7 +6552,7 @@ msgstr "Startseite-Einstellungen" #: templates/InvenTree/settings/user_labels.html:9 msgid "Label Settings" -msgstr "" +msgstr "Labeleinstellungen" #: templates/InvenTree/settings/user_search.html:9 msgid "Search Settings" @@ -6436,65 +6566,69 @@ msgstr "InvenTree-Versionsinformationen" msgid "InvenTree Version" msgstr "InvenTree-Version" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "Entwicklungsversion" + +#: templates/about.html:30 msgid "Up to Date" msgstr "Aktuell" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "Aktualisierung verfügbar" -#: templates/about.html:34 -msgid "API Version" -msgstr "API-Version" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "Python-Version" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "Django-Version" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "Commit-Hash" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "Commit-Datum" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "InvenTree-Dokumentation" -#: templates/about.html:68 +#: 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:73 +#: templates/about.html:80 msgid "Credits" msgstr "Danksagung" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "Mobile App" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "Fehlerbericht senden" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "In die Zwischenablage kopieren" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "Versionsinformationen kopieren" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "Schliessen" @@ -6515,1358 +6649,1406 @@ 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:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "BestandsObjekte auswählen" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "Keine Antwort" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "keine Antwort vom InvenTree Server" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "Fehler 400: Fehlerhafte Anfrage" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "Fehler-Code 400 zurückgegeben" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "Fehler 401: Nicht Angemeldet" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "Authentication Kredentials nicht angegeben" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "Fehler 403: keine Berechtigung" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "Fehlende Berechtigung für diese Aktion" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "Fehler 404: Ressource nicht gefunden" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 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:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "Fehler 408: Zeitüberschreitung" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "Verbindungszeitüberschreitung bei der Datenanforderung" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "Unbehandelter Fehler-Code" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "Fehler-Code" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "Keine Anhänge gefunden" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "Hochladedatum" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "Anhang bearbeiten" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "Anhang löschen" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "Hier den Barcode scannen" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "Barcode-Daten eingeben" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "Barcode" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "Optionale Notizen zu Bestandsübertragung eingeben" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "Notizen eingeben" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "Server-Fehler" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "Unbekannte Antwort von Server erhalten" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "Ungültige Antwort von Server" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "Barcode unterhalb scannen" -#: templates/js/translated/barcode.js:270 +#: templates/js/translated/barcode.js:281 templates/navbar.html:65 +msgid "Scan Barcode" +msgstr "Barcode scannen" + +#: templates/js/translated/barcode.js:292 msgid "No URL in response" msgstr "keine URL in der Antwort" -#: templates/js/translated/barcode.js:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "Barcode mit BestandsObjekt verknüpfen" -#: templates/js/translated/barcode.js:311 +#: templates/js/translated/barcode.js:333 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" -#: templates/js/translated/barcode.js:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "Entfernen" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "BestandsObjekt entfernen" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "BestandsObjekte in Lagerort buchen" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "Einbuchen" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "Fehler bei Bestandsübertragung" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "BestandsObjekte bereits gescannt" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "BestandsObjekt besteht bereits in diesem Lagerort" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "BestandsObjekt hinzugefügt" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "Barcode entspricht keinem BestandsObjekt" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "In Lagerorten buchen" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "Barcode entspricht keinem Lagerort" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "Unterbaugruppe öffnen" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "Kaufpreisspanne" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "Durchschnittlicher Kaufpreis" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "Stückliste anzeigen" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "Stücklisten-Position kontrollieren" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "Diese Position wurde kontrolliert" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "Stücklisten-Position bearbeiten" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "Stücklisten-Position löschen" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483 +#: templates/js/translated/build.js:1267 msgid "No BOM items found" msgstr "Keine Stücklisten-Position(en) gefunden" -#: templates/js/translated/build.js:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "Bauauftrag bearbeiten" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "Bauauftrag erstellen" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "Teilbestand automatisch Endprodukt zuweisen" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "Bestand von Endpordukt zurücknehmen" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "Endprodukt fertigstellen" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "Endprodukt entfernen" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "Standort nicht angegeben" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "Neues BestandsObjekt" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "benötigtes Teil" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "Anzahl pro" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231 #: templates/stock_table.html:59 msgid "Order stock" msgstr "Bestand bestellen" -#: templates/js/translated/build.js:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "Keine Bauaufträge passen zur Anfrage" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "Auswählen" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "Bauauftrag ist überfällig" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "Keine Benutzerinformation" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "Keine Information" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "Keine Teile zugeordnet zu" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" -msgstr "" +msgstr "Hersteller hinzufügen" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "Herstellerteil hinzufügen" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "Herstellerteil ändern" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "Herstellerteil löschen" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" -msgstr "" +msgstr "Zulieferer hinzufügen" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "Zuliefererteil hinzufügen" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "Zuliefererteil bearbeiten" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "Zuliefererteil entfernen" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "Firma bearbeiten" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "Neue Firma hinzufügen" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "Teile geliefert" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "Hersteller-Teile" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "Keine Firmeninformation gefunden" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "Die folgenden Herstellerteile werden gelöscht" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "Herstellerteile löschen" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "Keine Herstellerteile gefunden" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "Vorlagenteil" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "Baugruppe" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "Keine Parameter gefunden" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "Parameter löschen" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "Parameter bearbeiten" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "Parameter löschen" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "Keine Zuliefererteile gefunden" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "ja" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "nein" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "Filter auswählen" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" -msgstr "" +msgstr "Daten neu laden" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "Filter hinzufügen" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "Filter entfernen" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "Filter anlegen" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "Aktion verboten" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "Erstellvorgang nicht erlaubt" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "Updatevorgang nicht erlaubt" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "Löschvorgang nicht erlaubt" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "Anzeigevorgang nicht erlaubt" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "Fehler in Formular" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "Suche" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "Eingabe leeren" -#: templates/js/translated/label.js:11 +#: templates/js/translated/helpers.js:19 +msgid "YES" +msgstr "JA" + +#: templates/js/translated/helpers.js:21 +msgid "NO" +msgstr "NEIN" + +#: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "BestandsObjekt(e) müssen ausgewählt sein bevor Labels gedruckt werden können" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 msgid "No Labels Found" msgstr "Keine Labels gefunden" -#: templates/js/translated/label.js:30 +#: 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" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "Bestands-Lagerort auswählen" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "Bestands-Lagerort(e) müssen ausgewählt sein um Labels zu drucken" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "Keine Labels für die ausgewählten Bestands-Lagerort(e) gefunden" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "Teile(e) müssen ausgewählt sein bevor Labels gedruckt werden können" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "Keine Labels zu den ausgewählten Teilen gefunden" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "BestandsObjekte ausgewählt" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "Label auswählen" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "Label-Vorlage auswählen" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "Abbrechen" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "Abschicken" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "Formulartitel" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "Warte auf Server..." -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "Fehler-Informationen anzeigen" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "Akzeptieren" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "Lade Daten" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "ungültige Antwort vom Server" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "Formulardaten fehlen bei Serverantwort" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "Formulardaten fehlerhaft" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "JSON Antwort enthält keine Formulardaten" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "Fehler 400: Ungültige Anfrage" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "Fehler 400 von Server erhalten" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "Fehler bei Formulardaten-Anfrage" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "Firmen-ID" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "Standort-ID" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "Bauauftrag-ID" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "Teil-ID" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "Kategorie-ID" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "Herstellerteil-ID" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "Zuliefererteil-ID" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" -msgstr "" +msgstr "Kunden hinzufügen" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "Auftrag anlegen" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "Keine Bestellungen gefunden" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "Bestellung überfällig" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "Keine Positionen gefunden" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "Position löschen" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "Position empfangen" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "Keine Aufträge gefunden" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "Ungültiger Kunde" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "JA" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "NEIN" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" +#: templates/js/translated/part.js:49 +msgid "Part Attributes" +msgstr "Teileigenschaften" #: templates/js/translated/part.js:53 -msgid "Part Attributes" -msgstr "" - -#: templates/js/translated/part.js:96 msgid "Part Creation Options" -msgstr "" +msgstr "Erstellungsoptionen für Teile" -#: templates/js/translated/part.js:102 +#: templates/js/translated/part.js:57 +msgid "Part Duplication Options" +msgstr "Einstellungen für Teilkopien" + +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "Zuliefereroptionen" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "Teil-Kategorie hinzufügen" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "Anfänglichen Bestand erstellen" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "Anfänglichen Bestand für dieses Teil erstellen" + +#: templates/js/translated/part.js:172 msgid "Initial Stock Quantity" -msgstr "" +msgstr "Start-Bestandsmenge" -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "Menge des anfänglichen Bestands für dieses Teil angeben" -#: templates/js/translated/part.js:109 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "Zielstandort auswählen" + +#: templates/js/translated/part.js:191 msgid "Copy Category Parameters" -msgstr "" +msgstr "Kategorieparameter kopieren" -#: templates/js/translated/part.js:110 +#: templates/js/translated/part.js:192 msgid "Copy parameter templates from selected part category" msgstr "" -#: templates/js/translated/part.js:120 -msgid "Part Duplication Options" +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "Zuliefererdaten hinzufügen" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:257 msgid "Copy Image" -msgstr "" +msgstr "Bild kopieren" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" -msgstr "" +msgstr "Bild vom Originalteil kopieren" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "Stückliste kopieren" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" -msgstr "" +msgstr "Stückliste vom Originalteil kopieren" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "Parameter kopieren" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" -msgstr "" +msgstr "Parameterdaten vom Originalteil kopieren" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" -msgstr "" +msgstr "Übergeordnete Teilkategorie" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "Teil bearbeiten" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "Nachverfolgbares Teil" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "virtuelles Teil" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "Favoritenteil" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "Verkäufliches Teil" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "Keine Varianten gefunden" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "Keine Teile gefunden" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "Keine Kategorie" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "Bestand niedrig" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "Pfad" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "Keine zur Anfrage passenden Testvorlagen" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "Testergebnis bearbeiten" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "Testergebnis löschen" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "Dieses Testergebnis ist für ein Hauptteil" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "Testergebnis-Vorlage bearbeiten" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "Testergebnis-Vorlage löschen" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "Keine ${human_name} Informationen gefunden" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "${human_name} bearbeiten" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "${human_name} löschen" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "Einzelpreis" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "Einzelpreisdifferenz" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" -msgstr "" +msgstr "Übergeordneter Lagerort" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "Bestand exportieren" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "Format" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "Dateiformat auswählen" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" -msgstr "" +msgstr "Einschließlich Unterstandorte" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "Bestand verschieben" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "Verschieben" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "Bestand zählen" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "Anzahl" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "Bestand entfernen" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "Entfernen" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "Bestand hinzufügen" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "Hinzufügen" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "Bestand löschen" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "Bestandsanzahl angeben" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "Sie müssen mindestens einen Lagerbestand auswählen" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "Zielstandort auswählen" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" -msgstr "" +msgstr "Bestandsbewegungsnotizen" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "ERFOLGREICH" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "FEHLGESCHLAGEN" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "KEIN ERGEBNIS" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "Testergebnis hinzufügen" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "Keine Testergebnisse gefunden" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "Testdatum" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "In Arbeit" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "In BestandsObjekt installiert" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "an Kunde versand" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "Auftrag zugewiesen" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" -msgstr "Keine zur Anfrage passenden BestandsObjekte" +msgid "No stock location set" +msgstr "Kein Lagerort gesetzt" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "Teile" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "lose" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "Lagerorte" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "unbekannter Lagerort" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "BestandsObjekt wird produziert" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "BestandsObjekt wurde Auftrag zugewiesen" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "BestandsObjekt wurde Kunden zugewiesen" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "BestandsObjekt ist abgelaufen" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "BestandsObjekt läuft demnächst ab" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "BestandsObjekt zugewiesen" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "BestandsObjekt in anderem Element verbaut" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "BestandsObjekt abgewiesen" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "BestandsObjekt verloren" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "BestandsObjekt zerstört" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "gelöscht" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "Inventur" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" -msgstr "" +msgstr "Zuliefererteil nicht angegeben" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "Keine zur Anfrage passenden BestandsObjekte" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "Teile" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "lose" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "Lagerorte" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "unbekannter Lagerort" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "Status" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "Status setzen" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "Status Code setzen" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "Status Code muss ausgewählt werden" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "Ungültiges Datum" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "Standort nicht mehr vorhanden" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "Bestellung existiert nicht mehr" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "Kunde existiert nicht mehr" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "Lagerbestand existiert nicht mehr" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "Hinzugefügt" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "Entfernt" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "Tracking-Eintrag bearbeiten" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "Tracking-Eintrag löschen" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "Keine installierten Elemente" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "Seriennummer" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "Lagerbestand entfernen" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "Nachverfolgbares Teil" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" -msgstr "" +msgstr "Baugruppe" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "überprüft" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "Bestand an Varianten zulassen" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "Unter-Lagerorte einschließen" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "Lagerorte einschließen" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "Unterkategorien einschließen" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "Hat Seriennummer" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "Seriennummer >=" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "Seriennummer größer oder gleich" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "Seriennummer <=" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "Seriennummern kleiner oder gleich" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "Seriennummer" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "Losnummer" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "Aktive Teile" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "Bestand aktiver Teile anzeigen" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "Teil ist eine Baugruppe" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "Ist zugeordnet" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "Teil wurde zugeordnet" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "Bestand in Unter-Lagerorten einschließen" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "Zeige aufgebrauchte BestandsObjekte" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "Zeige Objekte welche im Lager sind" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "In Arbeit" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "Elemente, die in Produktion sind, anzeigen" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "Varianten einschließen" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "BestandsObjekte für Teil-Varianten einschließen" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "Installiert" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "BestandsObjekte, die in anderen Elementen verbaut sind, anzeigen" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "zeige zu Kunden zugeordnete Einträge" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "Status" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "Hat Einkaufspreis" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" -msgstr "" +msgstr "Bestand mit Einkaufspreis anzeigen" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "Zeige abgelaufene BestandsObjekte" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "Bestand, der bald ablaufen, anzeigen" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "Bauauftrags-Status" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "Bestellstatus" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "ausstehend" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "Teile in Unterkategorien einschließen" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "Hat IPN" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "Teil hat Interne Teilenummer" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "Aktive Teile anzeigen" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "verfügbarer Lagerbestand" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "Favorit" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "Käuflich" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "Lade Daten" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "Zeilen pro Seite" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "zeige" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "bis" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "von" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "Zeilen" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "Keine passenden Ergebnisse gefunden" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "Zeige/Verstecke Pagination" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "Neu laden" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "umschalten" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "Spalten" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "Alle" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "Navigation ein-/ausklappen" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "Kaufen" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "Verkaufen" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "Barcode scannen" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "Admin" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "Ausloggen" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "Einloggen" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "Über InvenTree" diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po index fb7695ddea..bb06cefdab 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -36,7 +36,7 @@ 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "" @@ -73,7 +73,7 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "" @@ -102,152 +102,178 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" msgstr "" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:184 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" msgstr "" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" msgstr "" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" msgstr "" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" msgstr "" -#: InvenTree/settings.py:518 -msgid "German" -msgstr "" - -#: InvenTree/settings.py:519 -msgid "Greek" -msgstr "" - -#: InvenTree/settings.py:520 -msgid "English" -msgstr "" - -#: InvenTree/settings.py:521 -msgid "Spanish" -msgstr "" - -#: InvenTree/settings.py:522 -msgid "French" +#: InvenTree/serializers.py:244 +msgid "Filename" msgstr "" #: InvenTree/settings.py:523 -msgid "Hebrew" +msgid "German" msgstr "" #: InvenTree/settings.py:524 -msgid "Italian" +msgid "Greek" msgstr "" #: InvenTree/settings.py:525 -msgid "Japanese" +msgid "English" msgstr "" #: InvenTree/settings.py:526 -msgid "Korean" +msgid "Spanish" msgstr "" #: InvenTree/settings.py:527 -msgid "Dutch" +msgid "French" msgstr "" #: InvenTree/settings.py:528 -msgid "Norwegian" +msgid "Hebrew" msgstr "" #: InvenTree/settings.py:529 -msgid "Polish" +msgid "Italian" msgstr "" #: InvenTree/settings.py:530 -msgid "Russian" +msgid "Japanese" msgstr "" #: InvenTree/settings.py:531 -msgid "Swedish" +msgid "Korean" msgstr "" #: InvenTree/settings.py:532 -msgid "Thai" +msgid "Dutch" msgstr "" #: InvenTree/settings.py:533 -msgid "Turkish" +msgid "Norwegian" msgstr "" #: InvenTree/settings.py:534 -msgid "Vietnamese" +msgid "Polish" msgstr "" #: InvenTree/settings.py:535 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:536 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:537 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:538 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:539 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "" @@ -372,7 +398,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" msgstr "" @@ -432,27 +458,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "" @@ -509,8 +535,8 @@ msgstr "" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "" @@ -522,19 +548,18 @@ msgstr "" #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "" @@ -604,13 +632,13 @@ 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:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "" @@ -649,7 +677,7 @@ msgstr "" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "" @@ -657,9 +685,9 @@ msgstr "" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" @@ -669,14 +697,13 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "" @@ -695,28 +722,28 @@ 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "" @@ -764,7 +791,7 @@ msgstr "" msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "" @@ -772,7 +799,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "" @@ -780,16 +807,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "" @@ -797,7 +824,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "" @@ -808,9 +835,9 @@ 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "" @@ -821,34 +848,33 @@ 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: 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:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "" @@ -881,11 +907,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "" @@ -912,9 +938,9 @@ msgstr "" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "" @@ -936,12 +962,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "" @@ -993,7 +1019,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "" @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "" @@ -1148,7 +1174,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1172,9 +1198,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "" @@ -1184,16 +1210,16 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "" @@ -1201,7 +1227,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "" @@ -1225,7 +1251,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "" @@ -1288,8 +1314,8 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "" @@ -1298,48 +1324,48 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "" @@ -1501,9 +1527,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,546 +1582,594 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "" @@ -2123,7 +2197,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 msgid "Link" msgstr "" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ 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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "" @@ -2490,8 +2569,8 @@ msgstr "" msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "" msgid "Options" msgstr "" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: 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:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2649,8 +2728,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "" @@ -2659,8 +2738,8 @@ msgstr "" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "" @@ -2717,41 +2795,41 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2817,8 +2895,8 @@ msgstr "" msgid "New Supplier" msgstr "" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "" @@ -2826,8 +2904,8 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "" @@ -2978,11 +3060,11 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,49 +3548,6 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3879,7 +3995,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3923,391 +4039,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "" @@ -4470,26 +4587,30 @@ 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4586,7 +4707,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4602,8 +4723,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:283 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5916,7 +6053,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6059,7 +6196,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" +msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index 2ca3808dcb..90d2d28be0 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-08-07 15:14+0000\n" +"POT-Creation-Date: 2021-09-12 13:15+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: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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "" @@ -74,7 +74,7 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "" @@ -103,152 +103,181 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1826 msgid "Attachment" msgstr "" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:184 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 +#: 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:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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 msgid "Name" msgstr "" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 #: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 #: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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 msgid "Description" msgstr "" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" msgstr "" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" msgstr "" -#: InvenTree/settings.py:518 -msgid "German" -msgstr "" - -#: InvenTree/settings.py:519 -msgid "Greek" -msgstr "" - -#: InvenTree/settings.py:520 -msgid "English" -msgstr "" - -#: InvenTree/settings.py:521 -msgid "Spanish" -msgstr "" - -#: InvenTree/settings.py:522 -msgid "French" +#: InvenTree/serializers.py:244 +msgid "Filename" msgstr "" #: InvenTree/settings.py:523 -msgid "Hebrew" +msgid "German" msgstr "" #: InvenTree/settings.py:524 -msgid "Italian" +msgid "Greek" msgstr "" #: InvenTree/settings.py:525 -msgid "Japanese" +msgid "English" msgstr "" #: InvenTree/settings.py:526 -msgid "Korean" +msgid "Spanish" msgstr "" #: InvenTree/settings.py:527 -msgid "Dutch" +msgid "French" msgstr "" #: InvenTree/settings.py:528 -msgid "Norwegian" +msgid "Hebrew" msgstr "" #: InvenTree/settings.py:529 -msgid "Polish" +msgid "Italian" msgstr "" #: InvenTree/settings.py:530 -msgid "Russian" +msgid "Japanese" msgstr "" #: InvenTree/settings.py:531 -msgid "Swedish" +msgid "Korean" msgstr "" #: InvenTree/settings.py:532 -msgid "Thai" +msgid "Dutch" msgstr "" #: InvenTree/settings.py:533 -msgid "Turkish" +msgid "Norwegian" msgstr "" #: InvenTree/settings.py:534 -msgid "Vietnamese" +msgid "Polish" msgstr "" #: InvenTree/settings.py:535 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:536 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:537 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:538 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:539 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "" @@ -373,7 +402,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" msgstr "" @@ -433,27 +462,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:105 msgid "System Information" msgstr "" @@ -510,8 +539,8 @@ msgstr "" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "" @@ -523,19 +552,18 @@ msgstr "" #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -543,13 +571,14 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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 msgid "Quantity" msgstr "" @@ -590,13 +619,15 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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 "" @@ -605,13 +636,13 @@ 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:549 -#: order/templates/order/receive_parts.html:24 +#: 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:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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 "" @@ -650,7 +681,7 @@ msgstr "" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "" @@ -658,8 +689,8 @@ msgstr "" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 +#: 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 @@ -670,14 +701,13 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "" @@ -696,15 +726,14 @@ 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 #: part/templates/part/set_category.html:13 @@ -712,12 +741,13 @@ msgstr "" #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: 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 msgid "Part" msgstr "" @@ -765,7 +795,7 @@ msgstr "" msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "" @@ -773,7 +803,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "" @@ -781,16 +811,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "" @@ -798,7 +828,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "" @@ -809,9 +839,9 @@ 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "" @@ -822,34 +852,33 @@ 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: 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:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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 msgid "Notes" msgstr "" @@ -882,11 +911,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -900,8 +929,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "" @@ -913,9 +942,9 @@ msgstr "" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "" @@ -937,12 +966,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "" @@ -994,7 +1023,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1006,9 +1035,9 @@ msgstr "" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "" @@ -1058,14 +1087,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "" @@ -1149,7 +1178,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1173,9 +1202,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "" @@ -1185,16 +1214,16 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "" @@ -1202,7 +1231,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "" @@ -1226,7 +1255,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "" @@ -1239,8 +1268,8 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "" @@ -1289,8 +1318,8 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "" @@ -1299,48 +1328,48 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: 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" msgstr "" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: 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" msgstr "" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: 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:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: 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 "" @@ -1373,7 +1402,7 @@ msgid "Build Order Details" msgstr "" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "" @@ -1502,9 +1531,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "" @@ -1540,7 +1569,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1557,546 +1586,594 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1322 msgid "Price" msgstr "" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "" @@ -2124,7 +2201,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2155,7 +2232,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2170,244 +2247,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:535 +#: templates/js/translated/company.js:823 templates/js/translated/part.js:972 msgid "Link" msgstr "" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:794 templates/js/translated/part.js:222 msgid "Manufacturer" msgstr "" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:223 msgid "Select manufacturer" msgstr "" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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 msgid "MPN" msgstr "" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:234 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:648 templates/js/translated/part.js:618 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:768 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:203 msgid "Supplier" msgstr "" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:204 msgid "Select supplier" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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 msgid "SKU" msgstr "" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:215 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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 msgid "Packaging" msgstr "" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2421,7 +2503,7 @@ 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:276 +#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2436,7 +2518,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2461,16 +2543,16 @@ msgstr "" msgid "Phone" msgstr "" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" @@ -2491,8 +2573,8 @@ msgstr "" msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2500,106 +2582,106 @@ msgstr "" msgid "Options" msgstr "" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 +#: 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:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 +#: 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:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2610,17 +2692,17 @@ 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:109 +#: 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:511 +#: templates/js/translated/company.js:560 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:561 msgid "Delete manufacturer part" msgstr "" @@ -2635,9 +2717,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2650,8 +2732,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "" @@ -2660,8 +2742,8 @@ msgstr "" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2677,7 +2759,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:834 msgid "Add Parameter" msgstr "" @@ -2694,18 +2776,18 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: 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 "" @@ -2718,41 +2800,41 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: 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" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:857 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:858 msgid "Delete supplier part" msgstr "" @@ -2776,13 +2858,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2790,11 +2872,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2818,8 +2900,8 @@ msgstr "" msgid "New Supplier" msgstr "" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:306 templates/navbar.html:42 msgid "Manufacturers" msgstr "" @@ -2828,7 +2910,7 @@ msgid "New Manufacturer" msgstr "" #: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: templates/navbar.html:53 msgid "Customers" msgstr "" @@ -2930,6 +3012,10 @@ 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 msgid "Place order" msgstr "" @@ -2979,11 +3065,11 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2992,7 +3078,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3024,7 +3110,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3032,150 +3118,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3228,14 +3346,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "" @@ -3337,7 +3453,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3370,7 +3486,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3387,7 +3503,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3426,9 +3542,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3437,49 +3553,6 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3487,18 +3560,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "" @@ -3512,7 +3585,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949 msgid "On Order" msgstr "" @@ -3541,7 +3614,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3564,71 +3637,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3815,12 +3919,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3880,7 +4000,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3924,391 +4044,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:916 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:517 templates/js/translated/part.js:749 msgid "IPN" msgstr "" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:521 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1205 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1214 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1222 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1229 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4318,17 +4438,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4375,33 +4495,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4436,7 +4557,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4450,7 +4571,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "" @@ -4471,26 +4592,30 @@ 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4534,7 +4659,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352 msgid "Duplicate Part" msgstr "" @@ -4555,7 +4680,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4564,10 +4689,10 @@ msgstr "" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4587,7 +4712,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4603,8 +4728,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4612,8 +4737,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4645,50 +4770,50 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:699 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 +#: part/templates/part/detail.html:716 msgid "Edit Test Result Template" msgstr "" -#: part/templates/part/detail.html:619 +#: part/templates/part/detail.html:728 msgid "Delete Test Result Template" msgstr "" -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:784 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:936 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:948 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:960 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1049 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4702,19 +4827,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4722,195 +4847,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765 +#: templates/js/translated/part.js:953 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: 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:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:519 +#: part/templates/part/part_base.html:544 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4920,7 +5054,7 @@ msgstr "" #: part/templates/part/partial_delete.html:7 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:12 @@ -4964,53 +5098,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5018,8 +5152,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: 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 msgid "No Stock" msgstr "" @@ -5033,10 +5167,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5117,51 +5251,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:303 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5267,17 +5401,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1807 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1813 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5289,51 +5423,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:146 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:154 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:162 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:168 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:178 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:183 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:211 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:247 stock/api.py:280 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:270 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: 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:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5385,258 +5519,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1727 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1784 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1790 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1808 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1814 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1820 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1827 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1833 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5769,7 +5911,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "" @@ -5796,7 +5938,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5826,7 +5968,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5976,7 +6118,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -6040,7 +6182,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6060,7 +6202,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6172,11 +6314,11 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 +#: 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:639 +#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709 msgid "No stock location set" msgstr "" @@ -6241,7 +6383,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:366 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6258,7 +6400,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94 msgid "Settings" msgstr "" @@ -6333,16 +6475,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6359,6 +6501,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6437,65 +6580,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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" msgstr "" @@ -6516,1358 +6663,1390 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: 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:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: 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:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: 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:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: 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:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1031 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: 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 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:475 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:495 +#: templates/js/translated/company.js:751 templates/js/translated/part.js:416 +#: templates/js/translated/part.js:501 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:499 +#: templates/js/translated/company.js:755 templates/js/translated/part.js:420 +#: templates/js/translated/part.js:505 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:626 templates/js/translated/part.js:593 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:663 templates/js/translated/part.js:635 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:636 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:683 templates/js/translated/part.js:653 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:694 templates/js/translated/part.js:665 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:731 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:922 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:922 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:934 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1031 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1046 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1047 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1070 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 -msgid "Copy Image" +#: templates/js/translated/part.js:61 +msgid "Supplier Options" msgstr "" -#: templates/js/translated/part.js:132 -msgid "Copy image from original part" +#: templates/js/translated/part.js:75 +msgid "Add Part Category" msgstr "" -#: templates/js/translated/part.js:138 -msgid "Copy BOM" +#: templates/js/translated/part.js:159 +msgid "Create Initial Stock" msgstr "" -#: templates/js/translated/part.js:139 -msgid "Copy bill of materials from original part" +#: templates/js/translated/part.js:160 +msgid "Create an initial stock item for this part" msgstr "" -#: templates/js/translated/part.js:145 -msgid "Copy Parameters" +#: templates/js/translated/part.js:167 +msgid "Initial Stock Quantity" msgstr "" -#: templates/js/translated/part.js:146 -msgid "Copy parameter data from original part" +#: templates/js/translated/part.js:168 +msgid "Specify initial stock quantity for this part" msgstr "" -#: templates/js/translated/part.js:158 -msgid "Parent part category" +#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:186 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:187 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:195 +msgid "Add Supplier Data" msgstr "" #: templates/js/translated/part.js:196 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:252 +msgid "Copy Image" +msgstr "" + +#: templates/js/translated/part.js:253 +msgid "Copy image from original part" +msgstr "" + +#: templates/js/translated/part.js:260 +msgid "Copy BOM" +msgstr "" + +#: templates/js/translated/part.js:261 +msgid "Copy bill of materials from original part" +msgstr "" + +#: templates/js/translated/part.js:268 +msgid "Copy Parameters" +msgstr "" + +#: templates/js/translated/part.js:269 +msgid "Copy parameter data from original part" +msgstr "" + +#: templates/js/translated/part.js:282 +msgid "Parent part category" +msgstr "" + +#: templates/js/translated/part.js:323 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:408 templates/js/translated/part.js:493 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:412 templates/js/translated/part.js:497 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:424 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:428 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:543 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:732 templates/js/translated/part.js:994 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:921 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:944 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1191 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1249 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1274 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1329 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1330 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1431 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1450 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:709 -msgid "No stock items matching query" -msgstr "" - -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:357 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:360 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:363 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:363 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:363 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:363 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:369 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:372 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:375 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:378 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:381 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:384 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:87 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:89 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:91 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:114 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index bfad560e33..677457c559 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -36,7 +36,7 @@ msgstr "Ingrese la fecha" #: 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "Confirmar" @@ -71,16 +71,16 @@ msgstr "Seleccionar Categoría" #: InvenTree/helpers.py:401 #, python-brace-format msgid "Duplicate serial: {n}" -msgstr "" +msgstr "Número de serie duplicado: {n}" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "Cantidad proporcionada no válida" #: InvenTree/helpers.py:411 msgid "Empty serial number string" -msgstr "" +msgstr "No se ha proporcionado un número de serie" #: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439 #: InvenTree/helpers.py:464 @@ -91,7 +91,7 @@ msgstr "Grupo no válido: un {g}" #: InvenTree/helpers.py:469 #, python-brace-format msgid "Duplicate serial: {g}" -msgstr "" +msgstr "Número de serie duplicado: {g}" #: InvenTree/helpers.py:477 msgid "No serial numbers found" @@ -100,168 +100,194 @@ msgstr "Numeros de serie no encontrados" #: InvenTree/helpers.py:481 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" -msgstr "" +msgstr "El número de números de serie únicos ({s}) debe coincidir con la cantidad ({q})" -#: InvenTree/models.py:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" -msgstr "" +msgstr "Archivo adjunto" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" -msgstr "" +msgstr "Seleccionar archivo para adjuntar" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "Comentario" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" -msgstr "" +msgstr "Comentario del archivo" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "Usuario" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" -msgstr "" +msgstr "fecha de subida" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "El nombre del archivo no debe estar vacío" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "Directorio de archivos adjuntos no válido" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "El nombre del archivo contiene el carácter ilegal '{c}'" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "Falta el nombre de extensión del archivo" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "Ya existe un archivo adjunto con este nombre" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "Error al cambiar el nombre del archivo" + +#: InvenTree/models.py:184 msgid "Invalid choice" -msgstr "" +msgstr "Selección no válida" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" msgstr "Nombre" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" msgstr "Descripción" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" -msgstr "" +msgstr "Descripción (opcional)" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" -msgstr "" +msgstr "padre" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" -msgstr "" +msgstr "Debe ser un numero valido" -#: InvenTree/settings.py:518 +#: InvenTree/serializers.py:244 +msgid "Filename" +msgstr "Nombre de Archivo" + +#: InvenTree/settings.py:523 msgid "German" msgstr "Alemán" -#: InvenTree/settings.py:519 +#: InvenTree/settings.py:524 msgid "Greek" -msgstr "" +msgstr "Griego" -#: InvenTree/settings.py:520 +#: InvenTree/settings.py:525 msgid "English" msgstr "Inglés" -#: InvenTree/settings.py:521 +#: InvenTree/settings.py:526 msgid "Spanish" -msgstr "" +msgstr "Español" -#: InvenTree/settings.py:522 +#: InvenTree/settings.py:527 msgid "French" msgstr "Francés" -#: InvenTree/settings.py:523 -msgid "Hebrew" -msgstr "" - -#: InvenTree/settings.py:524 -msgid "Italian" -msgstr "" - -#: InvenTree/settings.py:525 -msgid "Japanese" -msgstr "" - -#: InvenTree/settings.py:526 -msgid "Korean" -msgstr "" - -#: InvenTree/settings.py:527 -msgid "Dutch" -msgstr "" - #: InvenTree/settings.py:528 -msgid "Norwegian" -msgstr "" +msgid "Hebrew" +msgstr "Hebreo" #: InvenTree/settings.py:529 +msgid "Italian" +msgstr "Italiano" + +#: InvenTree/settings.py:530 +msgid "Japanese" +msgstr "Japonés" + +#: InvenTree/settings.py:531 +msgid "Korean" +msgstr "Coreano" + +#: InvenTree/settings.py:532 +msgid "Dutch" +msgstr "Holandés" + +#: InvenTree/settings.py:533 +msgid "Norwegian" +msgstr "Noruego" + +#: InvenTree/settings.py:534 msgid "Polish" msgstr "Polaco" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:535 msgid "Russian" -msgstr "" +msgstr "Ruso" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:536 msgid "Swedish" -msgstr "" +msgstr "Sueco" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:537 msgid "Thai" -msgstr "" +msgstr "Tailandés" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:538 msgid "Turkish" msgstr "Turco" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:539 msgid "Vietnamese" -msgstr "" +msgstr "Vietnamita" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:540 msgid "Chinese" -msgstr "" +msgstr "Chino" #: InvenTree/status.py:94 msgid "Background worker check failed" -msgstr "" +msgstr "Falló la comprobación en segundo plano del worker" #: InvenTree/status.py:98 msgid "Email backend not configured" -msgstr "" +msgstr "No se ha configurado el backend de correo" #: InvenTree/status.py:101 msgid "InvenTree system health checks failed" -msgstr "" +msgstr "Las comprobaciones de estado del sistema InvenTree fallaron" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 #: InvenTree/status_codes.py:314 @@ -289,7 +315,7 @@ msgstr "Perdida" #: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 #: InvenTree/status_codes.py:192 msgid "Returned" -msgstr "" +msgstr "Devuelto" #: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:126 @@ -318,7 +344,7 @@ msgstr "Rechazado" #: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" -msgstr "" +msgstr "Entrada antigua de rastreo de stock" #: InvenTree/status_codes.py:274 msgid "Stock item created" @@ -350,39 +376,39 @@ msgstr "Ubicación cambiada" #: InvenTree/status_codes.py:285 msgid "Installed into assembly" -msgstr "" +msgstr "Instalado en el ensamblaje" #: InvenTree/status_codes.py:286 msgid "Removed from assembly" -msgstr "" +msgstr "Retirado del ensamblaje" #: InvenTree/status_codes.py:288 msgid "Installed component item" -msgstr "" +msgstr "Artículo del componente instalado" #: InvenTree/status_codes.py:289 msgid "Removed component item" -msgstr "" +msgstr "Elemento de componente eliminado" #: InvenTree/status_codes.py:291 msgid "Split from parent item" -msgstr "" +msgstr "Separar del elemento principal" #: InvenTree/status_codes.py:292 msgid "Split child item" -msgstr "" +msgstr "Dividir elemento secundario" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" -msgstr "" +msgstr "Enviar al cliente" #: InvenTree/status_codes.py:295 msgid "Returned from customer" -msgstr "" +msgstr "Devolución del cliente" #: InvenTree/status_codes.py:297 msgid "Build order output created" -msgstr "" +msgstr "Trabajo de ensamblaje creado" #: InvenTree/status_codes.py:298 msgid "Build order output completed" @@ -398,143 +424,142 @@ msgstr "Producción" #: InvenTree/validators.py:22 msgid "Not a valid currency code" -msgstr "" +msgstr "No es un código de moneda válido" #: InvenTree/validators.py:50 msgid "Invalid character in part name" -msgstr "" +msgstr "Carácter no válido en el nombre del artículo" #: InvenTree/validators.py:63 #, python-brace-format msgid "IPN must match regex pattern {pat}" -msgstr "" +msgstr "El IPN debe coincidir con la expresión regular {pat}" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 #, python-brace-format msgid "Reference must match pattern {pattern}" -msgstr "" +msgstr "La referencia debe coincidir con la expresión regular {pattern}" #: InvenTree/validators.py:113 #, python-brace-format msgid "Illegal character in name ({x})" -msgstr "" +msgstr "Carácter ilegal en el nombre ({x})" #: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" -msgstr "" +msgstr "El valor excedente no debe ser negativo" #: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" -msgstr "" +msgstr "El excedente no debe superar el 100%" #: InvenTree/validators.py:157 msgid "Overage must be an integer value or a percentage" -msgstr "" +msgstr "El excedente debe ser un valor entero o un porcentaje" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "Eliminar elemento" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" -msgstr "" +msgstr "Marque la casilla para confirmar la eliminación del artículo" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" -msgstr "" +msgstr "Editar datos del usuario" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "Configurar Contraseña" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" -msgstr "" +msgstr "Los campos de contraseña deben coincidir" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "Información del sistema" #: barcodes/api.py:53 barcodes/api.py:150 msgid "Must provide barcode_data parameter" -msgstr "" +msgstr "Debe proporcionar el parámetro barcode_data" #: barcodes/api.py:126 msgid "No match found for barcode data" -msgstr "" +msgstr "No se encontró ninguna coincidencia para los datos del código de barras" #: barcodes/api.py:128 msgid "Match found for barcode data" -msgstr "" +msgstr "Coincidencia encontrada para datos de códigos de barras" #: barcodes/api.py:153 msgid "Must provide stockitem parameter" -msgstr "" +msgstr "Debe proporcionar el parámetro stockitem" #: barcodes/api.py:160 msgid "No matching stock item found" -msgstr "" +msgstr "No se ha encontrado ningún artículo de stock que coincida" #: barcodes/api.py:190 msgid "Barcode already matches StockItem object" -msgstr "" +msgstr "El código de barras ya corresponde al objeto de inventario" #: barcodes/api.py:194 msgid "Barcode already matches StockLocation object" -msgstr "" +msgstr "El código de barras ya corresponde a la ubicación de almacenamiento de existencias" #: barcodes/api.py:198 msgid "Barcode already matches Part object" -msgstr "" +msgstr "El código de barras ya corresponde a la parte" #: barcodes/api.py:204 barcodes/api.py:216 msgid "Barcode hash already matches StockItem object" -msgstr "" +msgstr "El código de barras ya está asignado a un objeto de inventario" #: barcodes/api.py:222 msgid "Barcode associated with StockItem" -msgstr "" +msgstr "Código de barras asignado al objeto de inventario" #: build/forms.py:37 msgid "Build Order reference" -msgstr "" +msgstr "Número de orden de construcción" #: build/forms.py:38 msgid "Order target date" -msgstr "" +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:119 #: report/templates/report/inventree_build_order_base.html:126 -#: templates/js/translated/build.js:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" -msgstr "" +msgstr "Fecha objetivo" #: build/forms.py:43 build/models.py:277 msgid "Target date for build completion. Build will be overdue after this date." -msgstr "" +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/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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,23 +567,24 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "Cantidad" #: build/forms.py:49 msgid "Number of items to build" -msgstr "" +msgstr "Número de elementos para construir" #: build/forms.py:91 msgid "Enter quantity for build output" -msgstr "" +msgstr "Ingrese la cantidad para la producción de la construcción" #: build/forms.py:95 order/forms.py:114 stock/forms.py:83 msgid "Serial Numbers" @@ -566,69 +592,71 @@ msgstr "Números de serie" #: build/forms.py:97 msgid "Enter serial numbers for build outputs" -msgstr "" +msgstr "Introduzca los números de serie de salidas de construcción" #: build/forms.py:103 msgid "Confirm creation of build output" -msgstr "" +msgstr "Confirmar la creación de salida de construcción" #: build/forms.py:124 msgid "Confirm deletion of build output" -msgstr "" +msgstr "Confirmar eliminación de salida de construcción" #: build/forms.py:145 msgid "Confirm unallocation of stock" -msgstr "" +msgstr "Confirmar la desasignación de stock" #: build/forms.py:169 msgid "Confirm stock allocation" -msgstr "" +msgstr "Confirmar asignación de stock" #: build/forms.py:186 msgid "Mark build as complete" -msgstr "" +msgstr "Marcar como construcción completa" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "Unicación" #: build/forms.py:211 msgid "Location of completed parts" -msgstr "" +msgstr "Ubicación de las partes completadas" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:62 order/models.py:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "Estado" #: build/forms.py:216 msgid "Build output stock status" -msgstr "" +msgstr "Generar estado de stock de salida" #: build/forms.py:223 msgid "Confirm incomplete" -msgstr "" +msgstr "Confirmar incompleta" #: build/forms.py:224 msgid "Confirm completion with incomplete stock allocation" -msgstr "" +msgstr "Confirmar la finalización con una asignación de stock incompleta" #: build/forms.py:227 msgid "Confirm build completion" -msgstr "" +msgstr "Confirmar la terminación de construcción" #: build/forms.py:252 msgid "Confirm cancel" @@ -636,47 +664,46 @@ msgstr "Confirmar cancelación" #: build/forms.py:252 build/views.py:65 msgid "Confirm build cancellation" -msgstr "" +msgstr "Confirmar la cancelación de construcción" #: build/forms.py:266 msgid "Select quantity of stock to allocate" -msgstr "" +msgstr "Seleccione la cantidad de stock para asignar" #: build/models.py:113 msgid "Invalid choice for parent build" -msgstr "" +msgstr "Opción no válida para la construcción padre" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" -msgstr "" +msgstr "Construir órden" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" -msgstr "" +msgstr "Construir órdenes" #: build/models.py:178 msgid "Build Order Reference" msgstr "" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "Referencia" @@ -695,28 +722,28 @@ 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "Parte" @@ -734,7 +761,7 @@ msgstr "" #: build/models.py:227 msgid "Source Location" -msgstr "" +msgstr "Ubicación de la fuente" #: build/models.py:231 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" @@ -742,19 +769,19 @@ msgstr "" #: build/models.py:236 msgid "Destination Location" -msgstr "" +msgstr "Ubicación de destino" #: build/models.py:240 msgid "Select location where the completed items will be stored" -msgstr "" +msgstr "Seleccione la ubicación donde se almacenarán los elementos completados" #: build/models.py:244 msgid "Build Quantity" -msgstr "" +msgstr "Cantidad a crear" #: build/models.py:247 msgid "Number of stock items to build" -msgstr "" +msgstr "Número de objetos existentes a construir" #: build/models.py:251 msgid "Completed items" @@ -762,111 +789,110 @@ msgstr "Elementos completados" #: build/models.py:253 msgid "Number of stock items which have been completed" -msgstr "" +msgstr "Número de productos en stock que se han completado" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" -msgstr "" +msgstr "Estado de la construcción" #: build/models.py:261 msgid "Build status code" -msgstr "" +msgstr "Código de estado de construcción" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" -msgstr "" +msgstr "Numero de lote" #: build/models.py:269 msgid "Batch code for this build output" -msgstr "" +msgstr "Número de lote de este producto final" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" -msgstr "" +msgstr "Fecha de Creación" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" -msgstr "" +msgstr "Fecha límite de finalización" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" -msgstr "" +msgstr "Fecha de finalización" #: build/models.py:286 msgid "completed by" -msgstr "" +msgstr "terminado por" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" -msgstr "" +msgstr "Emitido por" #: build/models.py:295 msgid "User who issued this build order" -msgstr "" +msgstr "El usuario que emitió esta orden" #: 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "Responsable" #: build/models.py:304 msgid "User responsible for this build order" -msgstr "" +msgstr "Usuario responsable de esta orden" #: 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" -msgstr "" +msgstr "Link externo" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: build/models.py:310 part/models.py:715 stock/models.py:509 msgid "Link to external URL" -msgstr "" +msgstr "Enlace a URL externa" #: build/models.py:314 build/templates/build/navbar.html:52 -#: company/models.py:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "Notas" #: build/models.py:315 msgid "Extra build notes" -msgstr "" +msgstr "Notas adicionales de construcción" #: build/models.py:792 msgid "No build output specified" -msgstr "" +msgstr "No se ha especificado salida de construcción" #: build/models.py:795 msgid "Build output is already completed" -msgstr "" +msgstr "La construcción de la salida ya está completa" #: build/models.py:798 msgid "Build output does not match Build Order" -msgstr "" +msgstr "La salida de la construcción no coincide con el orden de construcción" #: build/models.py:1208 msgid "BuildItem must be unique for build, stock_item and install_into" @@ -879,19 +905,19 @@ msgstr "" #: build/models.py:1237 #, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" -msgstr "" +msgstr "La cantidad asignada ({n}) no debe exceder la cantidad disponible ({q})" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "" #: build/models.py:1252 msgid "Quantity must be 1 for serialized stock" -msgstr "" +msgstr "La cantidad debe ser 1 para el stock serializado" #: build/models.py:1312 #, python-brace-format @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "" @@ -912,9 +938,9 @@ msgstr "" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "" @@ -936,12 +962,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "Número de serie" @@ -993,7 +1019,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "" @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "Progreso" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "" @@ -1072,7 +1098,7 @@ msgstr "" #: build/templates/build/detail.html:101 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" -msgstr "" +msgstr "Emitido por" #: build/templates/build/build_base.html:214 msgid "Incomplete Outputs" @@ -1148,7 +1174,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1172,9 +1198,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "Destinación" @@ -1184,16 +1210,16 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 msgid "Batch" msgstr "Lote" #: 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "" @@ -1201,7 +1227,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "Completados" @@ -1225,7 +1251,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "" @@ -1288,8 +1314,8 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "" @@ -1298,48 +1324,48 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "Detalles" @@ -1501,9 +1527,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,546 +1582,594 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "días" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "" @@ -2123,7 +2197,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "Página web" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "Teléfono" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "Teléfono de contacto" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "Email" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "Contacto" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 msgid "Link" msgstr "" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "Fabricante" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "Proveedor" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "Nota" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ 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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "Teléfono" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "Cliente" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "" @@ -2490,8 +2569,8 @@ msgstr "" msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "" msgid "Options" msgstr "Opciones" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: 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:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2649,8 +2728,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "Eliminar" @@ -2659,8 +2738,8 @@ msgstr "Eliminar" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "" @@ -2717,41 +2795,41 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2817,8 +2895,8 @@ msgstr "" msgid "New Supplier" msgstr "" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "Fabricantes" @@ -2826,8 +2904,8 @@ msgstr "Fabricantes" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "" @@ -2978,11 +3060,11 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,49 +3548,6 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3879,7 +3995,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3923,391 +4039,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "Exportar" @@ -4470,26 +4587,30 @@ 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4586,7 +4707,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4602,8 +4723,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:283 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5916,7 +6053,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6059,7 +6196,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" +msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po index 253f75aa39..4be936fa02 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -36,7 +36,7 @@ msgstr "Entrer la date" #: 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "Confirmer" @@ -73,7 +73,7 @@ msgstr "Sélectionnez une catégorie" msgid "Duplicate serial: {n}" msgstr "Dupliquer le numéro de série: {n}" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "Quantité fournie invalide" @@ -102,152 +102,178 @@ msgstr "Aucun numéro de série trouvé" 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:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" msgstr "Pièce jointe" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "Sélectionnez un fichier à joindre" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "Commentaire" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "Commentaire du fichier" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "Utilisateur" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "date de chargement" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:184 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" msgstr "Nom" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" msgstr "Description" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" msgstr "Description (facultative)" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" msgstr "parent" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" msgstr "" -#: InvenTree/settings.py:518 +#: InvenTree/serializers.py:244 +msgid "Filename" +msgstr "" + +#: InvenTree/settings.py:523 msgid "German" msgstr "Allemand" -#: InvenTree/settings.py:519 +#: InvenTree/settings.py:524 msgid "Greek" msgstr "" -#: InvenTree/settings.py:520 +#: InvenTree/settings.py:525 msgid "English" msgstr "Anglais" -#: InvenTree/settings.py:521 +#: InvenTree/settings.py:526 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:522 +#: InvenTree/settings.py:527 msgid "French" msgstr "Français" -#: InvenTree/settings.py:523 +#: InvenTree/settings.py:528 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:524 +#: InvenTree/settings.py:529 msgid "Italian" msgstr "" -#: InvenTree/settings.py:525 +#: InvenTree/settings.py:530 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:526 +#: InvenTree/settings.py:531 msgid "Korean" msgstr "" -#: InvenTree/settings.py:527 +#: InvenTree/settings.py:532 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:528 +#: InvenTree/settings.py:533 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:534 msgid "Polish" msgstr "Polonais" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:535 msgid "Russian" msgstr "" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:536 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:537 msgid "Thai" msgstr "" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:538 msgid "Turkish" msgstr "Turc" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:539 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "" @@ -372,7 +398,7 @@ msgstr "Séparer de l'élément parent" msgid "Split child item" msgstr "Fractionner l'élément enfant" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" msgstr "Envoyé au client" @@ -432,27 +458,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "Supprimer cet élément" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "Modifier les informations utilisateur" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "Informations système" @@ -509,8 +535,8 @@ msgstr "" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "" @@ -522,19 +548,18 @@ msgstr "" #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "Quantité" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "" @@ -604,13 +632,13 @@ msgid "Location of completed parts" msgstr "Emplacement des pièces terminées" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:62 order/models.py:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "" @@ -649,7 +677,7 @@ msgstr "" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "" @@ -657,9 +685,9 @@ msgstr "" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" @@ -669,14 +697,13 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "Référence" @@ -695,28 +722,28 @@ 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "Pièce" @@ -764,7 +791,7 @@ msgstr "" msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "" @@ -772,7 +799,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "" @@ -780,16 +807,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "Date de création" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "" @@ -797,7 +824,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "" @@ -808,9 +835,9 @@ 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "" @@ -821,34 +848,33 @@ 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "Lien Externe" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: 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:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "Notes" @@ -881,11 +907,11 @@ msgstr "L'élément de construction doit spécifier une sortie de construction, msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "L'article en stock sélectionné n'a pas été trouvé dans la BOM pour la pièce '{p}'" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "" @@ -912,9 +938,9 @@ msgstr "" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "" @@ -936,12 +962,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "" @@ -993,7 +1019,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "" @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "" @@ -1148,7 +1174,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1172,9 +1198,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "" @@ -1184,16 +1210,16 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "" @@ -1201,7 +1227,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "" @@ -1225,7 +1251,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "Commander les pièces requises" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "Commander des pièces" @@ -1288,8 +1314,8 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "Pieces jointes" @@ -1298,48 +1324,48 @@ msgstr "Pieces jointes" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "Détails" @@ -1501,9 +1527,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "Disponible" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,546 +1582,594 @@ msgstr "{name.title()} Fichier" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "Télécharger depuis l'URL" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "Regex IPN" -#: common/models.py:571 +#: common/models.py:557 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:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "Autoriser les IPN dupliqués" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "Permettre à plusieurs pièces de partager le même IPN" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "Autoriser l'édition de l'IPN" -#: common/models.py:583 +#: common/models.py:569 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:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "jours" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "" @@ -2123,7 +2197,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 msgid "Link" msgstr "" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ 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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "" @@ -2490,8 +2569,8 @@ msgstr "" msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "" msgid "Options" msgstr "" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: 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:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2649,8 +2728,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "" @@ -2659,8 +2738,8 @@ msgstr "" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "" @@ -2717,41 +2795,41 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2817,8 +2895,8 @@ msgstr "" msgid "New Supplier" msgstr "" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "" @@ -2826,8 +2904,8 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "" @@ -2978,11 +3060,11 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,49 +3548,6 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3879,7 +3995,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3923,391 +4039,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "IPN" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "" @@ -4470,26 +4587,30 @@ 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4586,7 +4707,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4602,8 +4723,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:283 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5916,7 +6053,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6059,7 +6196,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" +msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "A un IPN" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po index 46b94951af..869872e69c 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -36,7 +36,7 @@ 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "" @@ -73,7 +73,7 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "" @@ -102,152 +102,178 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" msgstr "" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:184 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" msgstr "" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" msgstr "" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" msgstr "" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" msgstr "" -#: InvenTree/settings.py:518 -msgid "German" -msgstr "" - -#: InvenTree/settings.py:519 -msgid "Greek" -msgstr "" - -#: InvenTree/settings.py:520 -msgid "English" -msgstr "" - -#: InvenTree/settings.py:521 -msgid "Spanish" -msgstr "" - -#: InvenTree/settings.py:522 -msgid "French" +#: InvenTree/serializers.py:244 +msgid "Filename" msgstr "" #: InvenTree/settings.py:523 -msgid "Hebrew" +msgid "German" msgstr "" #: InvenTree/settings.py:524 -msgid "Italian" +msgid "Greek" msgstr "" #: InvenTree/settings.py:525 -msgid "Japanese" +msgid "English" msgstr "" #: InvenTree/settings.py:526 -msgid "Korean" +msgid "Spanish" msgstr "" #: InvenTree/settings.py:527 -msgid "Dutch" +msgid "French" msgstr "" #: InvenTree/settings.py:528 -msgid "Norwegian" +msgid "Hebrew" msgstr "" #: InvenTree/settings.py:529 -msgid "Polish" +msgid "Italian" msgstr "" #: InvenTree/settings.py:530 -msgid "Russian" +msgid "Japanese" msgstr "" #: InvenTree/settings.py:531 -msgid "Swedish" +msgid "Korean" msgstr "" #: InvenTree/settings.py:532 -msgid "Thai" +msgid "Dutch" msgstr "" #: InvenTree/settings.py:533 -msgid "Turkish" +msgid "Norwegian" msgstr "" #: InvenTree/settings.py:534 -msgid "Vietnamese" +msgid "Polish" msgstr "" #: InvenTree/settings.py:535 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:536 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:537 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:538 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:539 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "" @@ -372,7 +398,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" msgstr "" @@ -432,27 +458,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "" @@ -509,8 +535,8 @@ msgstr "" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "" @@ -522,19 +548,18 @@ msgstr "" #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "" @@ -604,13 +632,13 @@ 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:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "" @@ -649,7 +677,7 @@ msgstr "" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "" @@ -657,9 +685,9 @@ msgstr "" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" @@ -669,14 +697,13 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "" @@ -695,28 +722,28 @@ 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "" @@ -764,7 +791,7 @@ msgstr "" msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "" @@ -772,7 +799,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "" @@ -780,16 +807,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "" @@ -797,7 +824,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "" @@ -808,9 +835,9 @@ 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "" @@ -821,34 +848,33 @@ 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: 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:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "" @@ -881,11 +907,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "" @@ -912,9 +938,9 @@ msgstr "" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "" @@ -936,12 +962,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "" @@ -993,7 +1019,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "" @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "" @@ -1148,7 +1174,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1172,9 +1198,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "" @@ -1184,16 +1210,16 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "" @@ -1201,7 +1227,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "" @@ -1225,7 +1251,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "" @@ -1288,8 +1314,8 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "" @@ -1298,48 +1324,48 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "" @@ -1501,9 +1527,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,546 +1582,594 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "" @@ -2123,7 +2197,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 msgid "Link" msgstr "" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ 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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "" @@ -2490,8 +2569,8 @@ msgstr "" msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "" msgid "Options" msgstr "" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: 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:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2649,8 +2728,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "" @@ -2659,8 +2738,8 @@ msgstr "" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "" @@ -2717,41 +2795,41 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2817,8 +2895,8 @@ msgstr "" msgid "New Supplier" msgstr "" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "" @@ -2826,8 +2904,8 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "" @@ -2978,11 +3060,11 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,49 +3548,6 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3879,7 +3995,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3923,391 +4039,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "" @@ -4470,26 +4587,30 @@ 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4586,7 +4707,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4602,8 +4723,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:283 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5916,7 +6053,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6059,7 +6196,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" +msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po index 95d97efc15..1a0dfbca11 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -36,7 +36,7 @@ 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "" @@ -73,7 +73,7 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "" @@ -102,152 +102,178 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" msgstr "" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:184 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" msgstr "" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" msgstr "" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" msgstr "" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" msgstr "" -#: InvenTree/settings.py:518 -msgid "German" -msgstr "" - -#: InvenTree/settings.py:519 -msgid "Greek" -msgstr "" - -#: InvenTree/settings.py:520 -msgid "English" -msgstr "" - -#: InvenTree/settings.py:521 -msgid "Spanish" -msgstr "" - -#: InvenTree/settings.py:522 -msgid "French" +#: InvenTree/serializers.py:244 +msgid "Filename" msgstr "" #: InvenTree/settings.py:523 -msgid "Hebrew" +msgid "German" msgstr "" #: InvenTree/settings.py:524 -msgid "Italian" +msgid "Greek" msgstr "" #: InvenTree/settings.py:525 -msgid "Japanese" +msgid "English" msgstr "" #: InvenTree/settings.py:526 -msgid "Korean" +msgid "Spanish" msgstr "" #: InvenTree/settings.py:527 -msgid "Dutch" +msgid "French" msgstr "" #: InvenTree/settings.py:528 -msgid "Norwegian" +msgid "Hebrew" msgstr "" #: InvenTree/settings.py:529 -msgid "Polish" +msgid "Italian" msgstr "" #: InvenTree/settings.py:530 -msgid "Russian" +msgid "Japanese" msgstr "" #: InvenTree/settings.py:531 -msgid "Swedish" +msgid "Korean" msgstr "" #: InvenTree/settings.py:532 -msgid "Thai" +msgid "Dutch" msgstr "" #: InvenTree/settings.py:533 -msgid "Turkish" +msgid "Norwegian" msgstr "" #: InvenTree/settings.py:534 -msgid "Vietnamese" +msgid "Polish" msgstr "" #: InvenTree/settings.py:535 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:536 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:537 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:538 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:539 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "" @@ -372,7 +398,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" msgstr "" @@ -432,27 +458,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "" @@ -509,8 +535,8 @@ msgstr "" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "" @@ -522,19 +548,18 @@ msgstr "" #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "" @@ -604,13 +632,13 @@ 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:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "" @@ -649,7 +677,7 @@ msgstr "" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "" @@ -657,9 +685,9 @@ msgstr "" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" @@ -669,14 +697,13 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "" @@ -695,28 +722,28 @@ 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "" @@ -764,7 +791,7 @@ msgstr "" msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "" @@ -772,7 +799,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "" @@ -780,16 +807,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "" @@ -797,7 +824,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "" @@ -808,9 +835,9 @@ 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "" @@ -821,34 +848,33 @@ 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: 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:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "" @@ -881,11 +907,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "" @@ -912,9 +938,9 @@ msgstr "" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "" @@ -936,12 +962,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "" @@ -993,7 +1019,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "" @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "" @@ -1148,7 +1174,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1172,9 +1198,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "" @@ -1184,16 +1210,16 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "" @@ -1201,7 +1227,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "" @@ -1225,7 +1251,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "" @@ -1288,8 +1314,8 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "" @@ -1298,48 +1324,48 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "" @@ -1501,9 +1527,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,546 +1582,594 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "" @@ -2123,7 +2197,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 msgid "Link" msgstr "" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ 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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "" @@ -2490,8 +2569,8 @@ msgstr "" msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "" msgid "Options" msgstr "" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: 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:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2649,8 +2728,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "" @@ -2659,8 +2738,8 @@ msgstr "" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "" @@ -2717,41 +2795,41 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2817,8 +2895,8 @@ msgstr "" msgid "New Supplier" msgstr "" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "" @@ -2826,8 +2904,8 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "" @@ -2978,11 +3060,11 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,49 +3548,6 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3879,7 +3995,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3923,391 +4039,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "" @@ -4470,26 +4587,30 @@ 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4586,7 +4707,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4602,8 +4723,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:283 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5916,7 +6053,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6059,7 +6196,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" +msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po index 66b6042cf2..e727dbd739 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -19,7 +19,7 @@ msgstr "" #: InvenTree/api.py:64 msgid "API endpoint not found" -msgstr "" +msgstr "Endpoint API non trovato" #: InvenTree/api.py:110 msgid "No action specified" @@ -36,17 +36,17 @@ msgstr "Inserisci la data" #: 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "Conferma" #: InvenTree/forms.py:127 msgid "Confirm delete" -msgstr "" +msgstr "Conferma eliminazione" #: InvenTree/forms.py:128 msgid "Confirm item deletion" -msgstr "" +msgstr "Conferma eliminazione elementi" #: InvenTree/forms.py:160 templates/registration/login.html:76 msgid "Enter password" @@ -71,197 +71,223 @@ msgstr "Selezione una categoria" #: InvenTree/helpers.py:401 #, python-brace-format msgid "Duplicate serial: {n}" -msgstr "" +msgstr "Seriale Duplicato: {n}" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" -msgstr "" +msgstr "Quantità inserita non valida" #: InvenTree/helpers.py:411 msgid "Empty serial number string" -msgstr "" +msgstr "Numero seriale vuoto" #: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439 #: InvenTree/helpers.py:464 #, python-brace-format msgid "Invalid group: {g}" -msgstr "" +msgstr "Gruppo non valido: {g}" #: InvenTree/helpers.py:469 #, python-brace-format msgid "Duplicate serial: {g}" -msgstr "" +msgstr "Seriale duplicato: {g}" #: InvenTree/helpers.py:477 msgid "No serial numbers found" -msgstr "" +msgstr "Nessun numero di serie trovato" #: InvenTree/helpers.py:481 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" -msgstr "" +msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quantità ({q})" -#: InvenTree/models.py:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" -msgstr "" +msgstr "Allegato" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" -msgstr "" +msgstr "Seleziona file da allegare" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" -msgstr "" +msgstr "Commento" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" -msgstr "" +msgstr "Commento del file" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" -msgstr "" +msgstr "Utente" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" -msgstr "" +msgstr "data caricamento" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "Il nome del file non deve essere vuoto" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "Directory allegati non valida" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "Il nome del file contiene caratteri non validi '{c}'" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "Nome file estensione mancante" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "Esiste già un allegato con questo nome di file" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "Errore nella rinominazione del file" + +#: InvenTree/models.py:184 msgid "Invalid choice" -msgstr "" +msgstr "Scelta non valida" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" -msgstr "" +msgstr "Nome" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" -msgstr "" +msgstr "Descrizione" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" -msgstr "" +msgstr "Descrizione (opzionale)" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" -msgstr "" +msgstr "genitore" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" -msgstr "" +msgstr "Deve essere un numero valido" -#: InvenTree/settings.py:518 +#: InvenTree/serializers.py:244 +msgid "Filename" +msgstr "Nome del file" + +#: InvenTree/settings.py:523 msgid "German" msgstr "Tedesco" -#: InvenTree/settings.py:519 +#: InvenTree/settings.py:524 msgid "Greek" msgstr "Greco" -#: InvenTree/settings.py:520 +#: InvenTree/settings.py:525 msgid "English" msgstr "Inglese" -#: InvenTree/settings.py:521 +#: InvenTree/settings.py:526 msgid "Spanish" msgstr "Spagnolo" -#: InvenTree/settings.py:522 +#: InvenTree/settings.py:527 msgid "French" msgstr "Francese" -#: InvenTree/settings.py:523 +#: InvenTree/settings.py:528 msgid "Hebrew" msgstr "Ebraico" -#: InvenTree/settings.py:524 +#: InvenTree/settings.py:529 msgid "Italian" msgstr "Italiano" -#: InvenTree/settings.py:525 +#: InvenTree/settings.py:530 msgid "Japanese" msgstr "Giapponese" -#: InvenTree/settings.py:526 +#: InvenTree/settings.py:531 msgid "Korean" msgstr "Coreano" -#: InvenTree/settings.py:527 +#: InvenTree/settings.py:532 msgid "Dutch" msgstr "Olandese" -#: InvenTree/settings.py:528 +#: InvenTree/settings.py:533 msgid "Norwegian" msgstr "Norvegese" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:534 msgid "Polish" msgstr "Polacco" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:535 msgid "Russian" msgstr "Russo" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:536 msgid "Swedish" msgstr "Svedese" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:537 msgid "Thai" msgstr "Thailandese" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:538 msgid "Turkish" msgstr "Turco" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:539 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "Cinese" #: InvenTree/status.py:94 msgid "Background worker check failed" -msgstr "" +msgstr "Controllo in background non riuscito" #: InvenTree/status.py:98 msgid "Email backend not configured" -msgstr "" +msgstr "Server di posta non configurato" #: InvenTree/status.py:101 msgid "InvenTree system health checks failed" -msgstr "" +msgstr "Controlli di sistema InvenTree falliti" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 #: InvenTree/status_codes.py:314 @@ -270,7 +296,7 @@ msgstr "In attesa" #: InvenTree/status_codes.py:105 msgid "Placed" -msgstr "" +msgstr "Inviato" #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" @@ -302,107 +328,107 @@ msgstr "OK" #: InvenTree/status_codes.py:187 msgid "Attention needed" -msgstr "" +msgstr "Attenzione necessaria" #: InvenTree/status_codes.py:188 msgid "Damaged" -msgstr "" +msgstr "Danneggiato" #: InvenTree/status_codes.py:189 msgid "Destroyed" -msgstr "" +msgstr "Distrutto" #: InvenTree/status_codes.py:191 msgid "Rejected" -msgstr "" +msgstr "Respinto" #: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" -msgstr "" +msgstr "Voce di tracciamento stock preesistente" #: InvenTree/status_codes.py:274 msgid "Stock item created" -msgstr "" +msgstr "Elemento stock creato" #: InvenTree/status_codes.py:276 msgid "Edited stock item" -msgstr "" +msgstr "Elemento stock modificato" #: InvenTree/status_codes.py:277 msgid "Assigned serial number" -msgstr "" +msgstr "Numero di serie assegnato" #: InvenTree/status_codes.py:279 msgid "Stock counted" -msgstr "" +msgstr "Stock contato" #: InvenTree/status_codes.py:280 msgid "Stock manually added" -msgstr "" +msgstr "Stock aggiunto manualmente" #: InvenTree/status_codes.py:281 msgid "Stock manually removed" -msgstr "" +msgstr "Stock rimosso manualmente" #: InvenTree/status_codes.py:283 msgid "Location changed" -msgstr "" +msgstr "Posizione cambiata" #: InvenTree/status_codes.py:285 msgid "Installed into assembly" -msgstr "" +msgstr "Installato nell'assemblaggio" #: InvenTree/status_codes.py:286 msgid "Removed from assembly" -msgstr "" +msgstr "Rimosso dall'assemblaggio" #: InvenTree/status_codes.py:288 msgid "Installed component item" -msgstr "" +msgstr "Componente installato" #: InvenTree/status_codes.py:289 msgid "Removed component item" -msgstr "" +msgstr "Elemento componente rimosso" #: InvenTree/status_codes.py:291 msgid "Split from parent item" -msgstr "" +msgstr "Diviso dall'elemento genitore" #: InvenTree/status_codes.py:292 msgid "Split child item" -msgstr "" +msgstr "Dividi elemento figlio" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" -msgstr "" +msgstr "Inviato al cliente" #: InvenTree/status_codes.py:295 msgid "Returned from customer" -msgstr "" +msgstr "Restituito dal cliente" #: InvenTree/status_codes.py:297 msgid "Build order output created" -msgstr "" +msgstr "Genera l'output dell'ordine creato" #: InvenTree/status_codes.py:298 msgid "Build order output completed" -msgstr "" +msgstr "Build order output completato" #: InvenTree/status_codes.py:300 msgid "Received against purchase order" -msgstr "" +msgstr "Ricevuto contro l'ordine di acquisto" #: InvenTree/status_codes.py:315 msgid "Production" -msgstr "" +msgstr "Produzione" #: InvenTree/validators.py:22 msgid "Not a valid currency code" -msgstr "" +msgstr "Non è un codice valuta valido" #: InvenTree/validators.py:50 msgid "Invalid character in part name" -msgstr "" +msgstr "Carattere non valido nel nome del file" #: InvenTree/validators.py:63 #, python-brace-format @@ -432,27 +458,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "" @@ -509,8 +535,8 @@ msgstr "" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "" @@ -522,19 +548,18 @@ msgstr "" #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "Quantità" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "" @@ -604,13 +632,13 @@ 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:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "" @@ -649,7 +677,7 @@ msgstr "" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "" @@ -657,9 +685,9 @@ msgstr "" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" @@ -669,14 +697,13 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "" @@ -695,28 +722,28 @@ 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "" @@ -764,7 +791,7 @@ msgstr "" msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "" @@ -772,7 +799,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "" @@ -780,16 +807,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "" @@ -797,7 +824,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "" @@ -808,9 +835,9 @@ 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "" @@ -821,34 +848,33 @@ 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: 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:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "" @@ -881,11 +907,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "" @@ -912,9 +938,9 @@ msgstr "" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "" @@ -936,12 +962,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "" @@ -993,7 +1019,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "" @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "" @@ -1148,7 +1174,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1172,9 +1198,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "" @@ -1184,16 +1210,16 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "" @@ -1201,7 +1227,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "" @@ -1225,7 +1251,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "" @@ -1288,8 +1314,8 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "" @@ -1298,48 +1324,48 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "" @@ -1501,9 +1527,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,546 +1582,594 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "" @@ -2123,7 +2197,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 msgid "Link" msgstr "" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ 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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "" @@ -2490,8 +2569,8 @@ msgstr "" msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "" msgid "Options" msgstr "" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: 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:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2649,8 +2728,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "" @@ -2659,8 +2738,8 @@ msgstr "" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "" @@ -2717,41 +2795,41 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2817,8 +2895,8 @@ msgstr "" msgid "New Supplier" msgstr "" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "" @@ -2826,8 +2904,8 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "" @@ -2978,11 +3060,11 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,49 +3548,6 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3879,7 +3995,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3923,391 +4039,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "" @@ -4470,26 +4587,30 @@ 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4586,7 +4707,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4602,8 +4723,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:283 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5916,7 +6053,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6059,7 +6196,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" +msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po index 9c938bc212..b957636ffc 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -36,7 +36,7 @@ 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "確認" @@ -73,7 +73,7 @@ msgstr "カテゴリの選択" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "数量コードが無効です" @@ -102,152 +102,178 @@ msgstr "シリアル番号が見つかりません" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" msgstr "添付ファイル" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "添付ファイルを選択" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "コメント:" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "ファイルコメント" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "ユーザー" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "アップロード日時" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:184 msgid "Invalid choice" msgstr "無効な選択です" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" msgstr "お名前" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" msgstr "説明" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" msgstr "説明 (オプション)" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" msgstr "親" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" msgstr "有効な数字でなければなりません" -#: InvenTree/settings.py:518 +#: InvenTree/serializers.py:244 +msgid "Filename" +msgstr "" + +#: InvenTree/settings.py:523 msgid "German" msgstr "ドイツ語" -#: InvenTree/settings.py:519 +#: InvenTree/settings.py:524 msgid "Greek" msgstr "" -#: InvenTree/settings.py:520 +#: InvenTree/settings.py:525 msgid "English" msgstr "英語" -#: InvenTree/settings.py:521 +#: InvenTree/settings.py:526 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:522 +#: InvenTree/settings.py:527 msgid "French" msgstr "フランス語" -#: InvenTree/settings.py:523 +#: InvenTree/settings.py:528 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:524 +#: InvenTree/settings.py:529 msgid "Italian" msgstr "" -#: InvenTree/settings.py:525 +#: InvenTree/settings.py:530 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:526 +#: InvenTree/settings.py:531 msgid "Korean" msgstr "" -#: InvenTree/settings.py:527 +#: InvenTree/settings.py:532 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:528 +#: InvenTree/settings.py:533 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:534 msgid "Polish" msgstr "ポーランド語" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:535 msgid "Russian" msgstr "" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:536 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:537 msgid "Thai" msgstr "" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:538 msgid "Turkish" msgstr "トルコ語" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:539 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "" @@ -372,7 +398,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" msgstr "" @@ -432,27 +458,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "" @@ -509,8 +535,8 @@ msgstr "" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "" @@ -522,19 +548,18 @@ msgstr "" #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "" @@ -604,13 +632,13 @@ 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:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "" @@ -649,7 +677,7 @@ msgstr "" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "" @@ -657,9 +685,9 @@ msgstr "" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" @@ -669,14 +697,13 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "" @@ -695,28 +722,28 @@ 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "パーツ" @@ -764,7 +791,7 @@ msgstr "" msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "" @@ -772,7 +799,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "" @@ -780,16 +807,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "" @@ -797,7 +824,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "" @@ -808,9 +835,9 @@ 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "" @@ -821,34 +848,33 @@ 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: 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:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "" @@ -881,11 +907,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "" @@ -912,9 +938,9 @@ msgstr "パーツを割り当てるためにビルドする" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "" @@ -936,12 +962,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "" @@ -993,7 +1019,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "" @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "" @@ -1148,7 +1174,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1172,9 +1198,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "" @@ -1184,16 +1210,16 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "" @@ -1201,7 +1227,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "" @@ -1225,7 +1251,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "注文必須パーツ" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "パーツの注文" @@ -1288,8 +1314,8 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "" @@ -1298,48 +1324,48 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "" @@ -1501,9 +1527,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,546 +1582,594 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "テンプレート" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "パーツはデフォルトのテンプレートです" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "アセンブリ" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "コンポーネント" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "パーツはデフォルトでサブコンポーネントとして使用できます" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "購入可能" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "パーツはデフォルトで購入可能です" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "パーツはデフォルトで販売可能です" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "追跡可能" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "パーツはデフォルトで追跡可能です" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "" @@ -2123,7 +2197,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 msgid "Link" msgstr "" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "メーカー・パーツ" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ 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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "サプライヤー・パーツ" @@ -2490,8 +2569,8 @@ msgstr "新しいサプライヤー・パーツを作成" msgid "New Supplier Part" msgstr "新しいサプライヤー・パーツ" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "新しいサプライヤー・パーツ" msgid "Options" msgstr "" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "パーツの注文" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "パーツを削除" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "パーツを削除" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "メーカー・パーツ" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "新しいメーカー・パーツを作成" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "新しいメーカ―・パーツ" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: 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:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "メーカー・パーツの編集" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "メーカー・パーツを削除" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2649,8 +2728,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "" @@ -2659,8 +2738,8 @@ msgstr "" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "メーカー・パーツの在庫" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "" @@ -2717,41 +2795,41 @@ msgstr "メーカー・パーツの注文" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2817,8 +2895,8 @@ msgstr "" msgid "New Supplier" msgstr "" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "" @@ -2826,8 +2904,8 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "" @@ -2978,11 +3060,11 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,49 +3548,6 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" -msgstr "%(order)s - %(desc)s の未処理のパーツを受け取る" +msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "パーツ" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3879,7 +3995,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3923,391 +4039,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "" @@ -4470,26 +4587,30 @@ 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4586,7 +4707,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4602,8 +4723,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:283 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5916,7 +6053,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6059,7 +6196,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "メーカー・パーツの編集" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "メーカー・パーツを削除" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" +msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po index 900a659884..1c171f0dee 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -36,7 +36,7 @@ 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "" @@ -73,7 +73,7 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "" @@ -102,152 +102,178 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" msgstr "" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:184 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" msgstr "" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" msgstr "" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" msgstr "" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" msgstr "" -#: InvenTree/settings.py:518 -msgid "German" -msgstr "" - -#: InvenTree/settings.py:519 -msgid "Greek" -msgstr "" - -#: InvenTree/settings.py:520 -msgid "English" -msgstr "" - -#: InvenTree/settings.py:521 -msgid "Spanish" -msgstr "" - -#: InvenTree/settings.py:522 -msgid "French" +#: InvenTree/serializers.py:244 +msgid "Filename" msgstr "" #: InvenTree/settings.py:523 -msgid "Hebrew" +msgid "German" msgstr "" #: InvenTree/settings.py:524 -msgid "Italian" +msgid "Greek" msgstr "" #: InvenTree/settings.py:525 -msgid "Japanese" +msgid "English" msgstr "" #: InvenTree/settings.py:526 -msgid "Korean" +msgid "Spanish" msgstr "" #: InvenTree/settings.py:527 -msgid "Dutch" +msgid "French" msgstr "" #: InvenTree/settings.py:528 -msgid "Norwegian" +msgid "Hebrew" msgstr "" #: InvenTree/settings.py:529 -msgid "Polish" +msgid "Italian" msgstr "" #: InvenTree/settings.py:530 -msgid "Russian" +msgid "Japanese" msgstr "" #: InvenTree/settings.py:531 -msgid "Swedish" +msgid "Korean" msgstr "" #: InvenTree/settings.py:532 -msgid "Thai" +msgid "Dutch" msgstr "" #: InvenTree/settings.py:533 -msgid "Turkish" +msgid "Norwegian" msgstr "" #: InvenTree/settings.py:534 -msgid "Vietnamese" +msgid "Polish" msgstr "" #: InvenTree/settings.py:535 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:536 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:537 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:538 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:539 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "" @@ -372,7 +398,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" msgstr "" @@ -432,27 +458,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "" @@ -509,8 +535,8 @@ msgstr "" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "" @@ -522,19 +548,18 @@ msgstr "" #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "" @@ -604,13 +632,13 @@ 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:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "" @@ -649,7 +677,7 @@ msgstr "" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "" @@ -657,9 +685,9 @@ msgstr "" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" @@ -669,14 +697,13 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "" @@ -695,28 +722,28 @@ 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "" @@ -764,7 +791,7 @@ msgstr "" msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "" @@ -772,7 +799,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "" @@ -780,16 +807,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "" @@ -797,7 +824,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "" @@ -808,9 +835,9 @@ 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "" @@ -821,34 +848,33 @@ 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: 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:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "" @@ -881,11 +907,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "" @@ -912,9 +938,9 @@ msgstr "" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "" @@ -936,12 +962,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "" @@ -993,7 +1019,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "" @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "" @@ -1148,7 +1174,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1172,9 +1198,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "" @@ -1184,16 +1210,16 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "" @@ -1201,7 +1227,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "" @@ -1225,7 +1251,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "" @@ -1288,8 +1314,8 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "" @@ -1298,48 +1324,48 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "" @@ -1501,9 +1527,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,546 +1582,594 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "" @@ -2123,7 +2197,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 msgid "Link" msgstr "" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ 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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "" @@ -2490,8 +2569,8 @@ msgstr "" msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "" msgid "Options" msgstr "" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: 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:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2649,8 +2728,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "" @@ -2659,8 +2738,8 @@ msgstr "" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "" @@ -2717,41 +2795,41 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2817,8 +2895,8 @@ msgstr "" msgid "New Supplier" msgstr "" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "" @@ -2826,8 +2904,8 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "" @@ -2978,11 +3060,11 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,49 +3548,6 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3879,7 +3995,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3923,391 +4039,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "" @@ -4470,26 +4587,30 @@ 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4586,7 +4707,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4602,8 +4723,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:283 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5916,7 +6053,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6059,7 +6196,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" +msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po index 13d7b460c0..c3c9bcb37c 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -19,7 +19,7 @@ msgstr "" #: InvenTree/api.py:64 msgid "API endpoint not found" -msgstr "" +msgstr "API eindpunt niet gevonden" #: InvenTree/api.py:110 msgid "No action specified" @@ -36,7 +36,7 @@ msgstr "Voer datum in" #: 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "Bevestigen" @@ -71,16 +71,16 @@ msgstr "Categorie selecteren" #: InvenTree/helpers.py:401 #, python-brace-format msgid "Duplicate serial: {n}" -msgstr "" +msgstr "Dubbel serienummer: {n}" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "Ongeldige hoeveeldheid ingevoerd" #: InvenTree/helpers.py:411 msgid "Empty serial number string" -msgstr "" +msgstr "Leeg serienummer" #: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439 #: InvenTree/helpers.py:464 @@ -91,7 +91,7 @@ msgstr "Ongeldige groep: {g}" #: InvenTree/helpers.py:469 #, python-brace-format msgid "Duplicate serial: {g}" -msgstr "" +msgstr "Dubbel serienummer: {g}" #: InvenTree/helpers.py:477 msgid "No serial numbers found" @@ -102,152 +102,178 @@ msgstr "Geen serienummers gevonden" 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:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" msgstr "Bijlage" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "Bestand als bijlage selecteren" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "Opmerking" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "Bijlage opmerking" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "Gebruiker" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "uploaddatum" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "Bestandsnaam mag niet leeg zijn" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "Fout bijlagemap" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "Bestandsnaam bevat illegale teken '{c}'" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "Bestandsnaam mist extensie" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "Bijlage met deze bestandsnaam bestaat al" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "Fout bij hernoemen bestand" + +#: InvenTree/models.py:184 msgid "Invalid choice" msgstr "Ongeldige keuze" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" msgstr "Naam" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" msgstr "Omschrijving" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" msgstr "Omschrijving (optioneel)" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" msgstr "overkoepelend" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" msgstr "Moet een geldig nummer zijn" -#: InvenTree/settings.py:518 +#: InvenTree/serializers.py:244 +msgid "Filename" +msgstr "Bestandsnaam" + +#: InvenTree/settings.py:523 msgid "German" msgstr "Duits" -#: InvenTree/settings.py:519 +#: InvenTree/settings.py:524 msgid "Greek" msgstr "Grieks" -#: InvenTree/settings.py:520 +#: InvenTree/settings.py:525 msgid "English" msgstr "Engels" -#: InvenTree/settings.py:521 +#: InvenTree/settings.py:526 msgid "Spanish" msgstr "Spaans" -#: InvenTree/settings.py:522 +#: InvenTree/settings.py:527 msgid "French" msgstr "Frans" -#: InvenTree/settings.py:523 +#: InvenTree/settings.py:528 msgid "Hebrew" msgstr "Hebreeuws" -#: InvenTree/settings.py:524 +#: InvenTree/settings.py:529 msgid "Italian" msgstr "Italiaans" -#: InvenTree/settings.py:525 +#: InvenTree/settings.py:530 msgid "Japanese" msgstr "Japans" -#: InvenTree/settings.py:526 +#: InvenTree/settings.py:531 msgid "Korean" msgstr "Koreaans" -#: InvenTree/settings.py:527 +#: InvenTree/settings.py:532 msgid "Dutch" msgstr "Nederlands" -#: InvenTree/settings.py:528 +#: InvenTree/settings.py:533 msgid "Norwegian" msgstr "Noors" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:534 msgid "Polish" msgstr "Pools" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:535 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:536 msgid "Swedish" msgstr "Zweeds" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:537 msgid "Thai" msgstr "Thais" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:538 msgid "Turkish" msgstr "Turks" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:539 msgid "Vietnamese" msgstr "Vietnamees" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "Chinees" @@ -261,168 +287,168 @@ msgstr "E-mailbackend niet geconfigureerd" #: InvenTree/status.py:101 msgid "InvenTree system health checks failed" -msgstr "" +msgstr "Inventree gezondsheidscheck faalt" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 #: InvenTree/status_codes.py:314 msgid "Pending" -msgstr "" +msgstr "Bezig" #: InvenTree/status_codes.py:105 msgid "Placed" -msgstr "" +msgstr "Geplaatst" #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" -msgstr "" +msgstr "Voltooid" #: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 #: InvenTree/status_codes.py:316 msgid "Cancelled" -msgstr "" +msgstr "Geannuleerd" #: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 #: InvenTree/status_codes.py:190 msgid "Lost" -msgstr "" +msgstr "Kwijt" #: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 #: InvenTree/status_codes.py:192 msgid "Returned" -msgstr "" +msgstr "Retour" #: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:126 msgid "Shipped" -msgstr "" +msgstr "Verzonden" #: InvenTree/status_codes.py:186 msgid "OK" -msgstr "" +msgstr "OK" #: InvenTree/status_codes.py:187 msgid "Attention needed" -msgstr "" +msgstr "Aandacht nodig" #: InvenTree/status_codes.py:188 msgid "Damaged" -msgstr "" +msgstr "Beschadigd" #: InvenTree/status_codes.py:189 msgid "Destroyed" -msgstr "" +msgstr "Verwoest" #: InvenTree/status_codes.py:191 msgid "Rejected" -msgstr "" +msgstr "Afgewezen" #: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" -msgstr "" +msgstr "Verouderde trackingscode" #: InvenTree/status_codes.py:274 msgid "Stock item created" -msgstr "" +msgstr "Voorraaditem gemaakt" #: InvenTree/status_codes.py:276 msgid "Edited stock item" -msgstr "" +msgstr "Bewerken voorraaditem" #: InvenTree/status_codes.py:277 msgid "Assigned serial number" -msgstr "" +msgstr "Serienummer toegewezen" #: InvenTree/status_codes.py:279 msgid "Stock counted" -msgstr "" +msgstr "Voorraad geteld" #: InvenTree/status_codes.py:280 msgid "Stock manually added" -msgstr "" +msgstr "Voorraad handmatig toegevoegd" #: InvenTree/status_codes.py:281 msgid "Stock manually removed" -msgstr "" +msgstr "Voorraad handmatig verwijderd" #: InvenTree/status_codes.py:283 msgid "Location changed" -msgstr "" +msgstr "Locatie veranderd" #: InvenTree/status_codes.py:285 msgid "Installed into assembly" -msgstr "" +msgstr "Gemonteerd" #: InvenTree/status_codes.py:286 msgid "Removed from assembly" -msgstr "" +msgstr "Gedemonteerd" #: InvenTree/status_codes.py:288 msgid "Installed component item" -msgstr "" +msgstr "Gemonteerd item" #: InvenTree/status_codes.py:289 msgid "Removed component item" -msgstr "" +msgstr "Gedemonteerd item" #: InvenTree/status_codes.py:291 msgid "Split from parent item" -msgstr "" +msgstr "Splits van bovenliggend item" #: InvenTree/status_codes.py:292 msgid "Split child item" -msgstr "" +msgstr "Splits onderliggende item" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" -msgstr "" +msgstr "Naar klant verzonden" #: InvenTree/status_codes.py:295 msgid "Returned from customer" -msgstr "" +msgstr "Geretourneerd door klant" #: InvenTree/status_codes.py:297 msgid "Build order output created" -msgstr "" +msgstr "Montageopdracht gecreëerd" #: InvenTree/status_codes.py:298 msgid "Build order output completed" -msgstr "" +msgstr "Montageopdracht voltooid" #: InvenTree/status_codes.py:300 msgid "Received against purchase order" -msgstr "" +msgstr "Ontvangen tegen inkoopopdracht" #: InvenTree/status_codes.py:315 msgid "Production" -msgstr "" +msgstr "Productie" #: InvenTree/validators.py:22 msgid "Not a valid currency code" -msgstr "" +msgstr "Foute valutacode" #: InvenTree/validators.py:50 msgid "Invalid character in part name" -msgstr "" +msgstr "Foute letter in onderdeelnaam" #: InvenTree/validators.py:63 #, python-brace-format msgid "IPN must match regex pattern {pat}" -msgstr "" +msgstr "IPN moet overeenkomen met regex-patroon {pat}" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 #, python-brace-format msgid "Reference must match pattern {pattern}" -msgstr "" +msgstr "Refernetie moet overeenkomen met patroon {pattern}" #: InvenTree/validators.py:113 #, python-brace-format msgid "Illegal character in name ({x})" -msgstr "" +msgstr "Illegale letter in naam ({x})" #: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" -msgstr "" +msgstr "Overschrijdingswaarde mag niet negatief zijn" #: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" @@ -432,27 +458,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" -msgstr "" +msgstr "Verwijder item" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" -msgstr "" +msgstr "Selectievakje aanvinken om de verwijdering van items te bevestigen" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" -msgstr "" +msgstr "Gebruikersgegevens bewerken" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" -msgstr "" +msgstr "Wachtwoord instellen" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" -msgstr "" +msgstr "Wachtwoordvelden komen niet overeen" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "Systeeminformatie" @@ -498,7 +524,7 @@ msgstr "Barcode gekoppeld aan StockItem" #: build/forms.py:37 msgid "Build Order reference" -msgstr "" +msgstr "Bouwopdracht referentie" #: build/forms.py:38 msgid "Order target date" @@ -509,8 +535,8 @@ msgstr "Order streefdatum" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "Streefdatum" @@ -522,19 +548,18 @@ msgstr "" #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "Aantal" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "Markeer build als voltooid" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "Locatie" @@ -604,13 +632,13 @@ msgid "Location of completed parts" msgstr "Locatie van voltooide onderdelen" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:62 order/models.py:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "Status" @@ -649,34 +677,33 @@ msgstr "Ongeldige keuze voor bovenliggende build" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" -msgstr "" +msgstr "Bouwopdracht" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" -msgstr "" +msgstr "Bouwopdrachten" #: build/models.py:178 msgid "Build Order Reference" -msgstr "" +msgstr "Bouwopdracht referentie" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "Referentie" @@ -687,7 +714,7 @@ msgstr "Korte beschrijving van de build" #: build/models.py:199 build/templates/build/build_base.html:163 #: build/templates/build/detail.html:80 msgid "Parent Build" -msgstr "" +msgstr "Bovenliggende bouw" #: build/models.py:200 msgid "BuildOrder to which this build is allocated" @@ -695,28 +722,28 @@ msgstr "BuildOrder waaraan deze build is toegewezen" #: 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "Onderdeel" @@ -746,11 +773,11 @@ msgstr "Bestemmings Locatie" #: build/models.py:240 msgid "Select location where the completed items will be stored" -msgstr "" +msgstr "Selecteer locatie waar de voltooide items zullen worden opgeslagen" #: build/models.py:244 msgid "Build Quantity" -msgstr "" +msgstr "Bouwkwaliteit" #: build/models.py:247 msgid "Number of stock items to build" @@ -758,21 +785,21 @@ msgstr "" #: build/models.py:251 msgid "Completed items" -msgstr "" +msgstr "Voltooide voorraadartikelen" #: build/models.py:253 msgid "Number of stock items which have been completed" -msgstr "" +msgstr "Aantal voorraadartikelen die zijn voltooid" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" -msgstr "" +msgstr "Bouwstatus" #: build/models.py:261 msgid "Build status code" -msgstr "" +msgstr "Bouwstatuscode" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "" @@ -780,93 +807,92 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" -msgstr "" +msgstr "Aanmaakdatum" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" -msgstr "" +msgstr "Verwachte voltooiingsdatum" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" -msgstr "" +msgstr "Voltooiingsdatum" #: build/models.py:286 msgid "completed by" -msgstr "" +msgstr "voltooid door" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "" #: build/models.py:295 msgid "User who issued this build order" -msgstr "" +msgstr "Gebruiker die bouwopdracht heeft gegeven" #: 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" -msgstr "" +msgstr "Verantwoordelijke" #: build/models.py:304 msgid "User responsible for this build order" -msgstr "" +msgstr "Gebruiker verantwoordelijk voor deze bouwopdracht" #: 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" -msgstr "" +msgstr "Externe Link" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: build/models.py:310 part/models.py:715 stock/models.py:509 msgid "Link to external URL" -msgstr "" +msgstr "Link naar externe URL" #: build/models.py:314 build/templates/build/navbar.html:52 -#: company/models.py:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" -msgstr "" +msgstr "Opmerkingen" #: build/models.py:315 msgid "Extra build notes" -msgstr "" +msgstr "Opmerkingen over de bouw" #: build/models.py:792 msgid "No build output specified" -msgstr "" +msgstr "Geen bouwuitvoer opgegeven" #: build/models.py:795 msgid "Build output is already completed" -msgstr "" +msgstr "Bouwuitvoer is al voltooid" #: build/models.py:798 msgid "Build output does not match Build Order" -msgstr "" +msgstr "Bouwuitvoer komt niet overeen met bouwopdracht" #: build/models.py:1208 msgid "BuildItem must be unique for build, stock_item and install_into" @@ -881,11 +907,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -896,96 +922,96 @@ msgstr "" #: build/models.py:1312 #, python-brace-format msgid "Selected stock item not found in BOM for part '{p}'" -msgstr "" +msgstr "Geselecteerde voorraadartikel niet gevonden in stuklijst voor onderdeel '{p}'" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" -msgstr "" +msgstr "Product" #: build/models.py:1373 msgid "Build to allocate parts" -msgstr "" +msgstr "Bouw om onderdelen toe te wijzen" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" -msgstr "" +msgstr "Voorraadartikel" #: build/models.py:1390 msgid "Source stock item" -msgstr "" +msgstr "Bron voorraadartikel" #: build/models.py:1403 msgid "Stock quantity to allocate to build" -msgstr "" +msgstr "Voorraad hoeveelheid te alloceren aan bouw" #: build/models.py:1411 msgid "Install into" -msgstr "" +msgstr "Installeren in" #: build/models.py:1412 msgid "Destination stock item" -msgstr "" +msgstr "Bestemming voorraadartikel" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" -msgstr "" +msgstr "Serienummer" #: build/templates/build/auto_allocate.html:9 msgid "Automatically Allocate Stock" -msgstr "" +msgstr "Automatisch voorraad toewijzen" #: build/templates/build/auto_allocate.html:10 msgid "The following stock items will be allocated to the specified build output" -msgstr "" +msgstr "De volgende voorraadartikelen zullen worden toegewezen aan het opgegeven product" #: build/templates/build/auto_allocate.html:37 msgid "No stock items found that can be automatically allocated to this build" -msgstr "" +msgstr "Geen voorraadartikelen gevonden die automatisch aan dit product toegewezen kunnen worden" #: build/templates/build/auto_allocate.html:39 msgid "Stock items will have to be manually allocated" -msgstr "" +msgstr "Voorraad items zullen handmatig moeten worden toegewezen" #: build/templates/build/build_base.html:18 #, python-format msgid "This Build Order is allocated to Sales Order %(link)s" -msgstr "" +msgstr "Deze bouwopdracht is toegewezen aan verkooporder %(link)s" #: build/templates/build/build_base.html:25 #, python-format msgid "This Build Order is a child of Build Order %(link)s" -msgstr "" +msgstr "Deze bouwopdracht is een onderdeel van bouwopdracht %(link)s" #: build/templates/build/build_base.html:32 msgid "Build Order is ready to mark as completed" -msgstr "" +msgstr "Bouwopdracht is gereed om te markeren als voltooid" #: build/templates/build/build_base.html:37 msgid "Build Order cannot be completed as outstanding outputs remain" -msgstr "" +msgstr "Bouwopdracht kan niet worden voltooid omdat openstaande outputs blijven" #: build/templates/build/build_base.html:42 msgid "Required build quantity has not yet been completed" -msgstr "" +msgstr "Vereiste bouwhoeveelheid is nog niet bereikt" #: build/templates/build/build_base.html:47 msgid "Stock has not been fully allocated to this Build Order" -msgstr "" +msgstr "Voorraad is niet volledig toegewezen aan deze bouwopdracht" #: build/templates/build/build_base.html:75 #: company/templates/company/company_base.html:40 @@ -993,7 +1019,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "Beheerder weergave" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "Achterstallig" @@ -1039,7 +1065,7 @@ msgstr "Annuleer Build" #: build/templates/build/build_base.html:114 msgid "Delete Build" -msgstr "" +msgstr "Verwijder bouw" #: build/templates/build/build_base.html:124 #: build/templates/build/detail.html:15 @@ -1049,7 +1075,7 @@ msgstr "Build details" #: build/templates/build/build_base.html:150 #, python-format msgid "This build was due on %(target)s" -msgstr "" +msgstr "Deze bouw was verwacht op %(target)s" #: build/templates/build/build_base.html:157 #: build/templates/build/detail.html:67 @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "Voortgang" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "Verkoop Order" @@ -1076,15 +1102,15 @@ msgstr "Uitgegeven door" #: build/templates/build/build_base.html:214 msgid "Incomplete Outputs" -msgstr "" +msgstr "Onvolledige bouwuitvoer" #: build/templates/build/build_base.html:215 msgid "Build Order cannot be completed as incomplete build outputs remain" -msgstr "" +msgstr "Bouwopdracht kan niet worden voltooid omdat onvolledige bouwuitvoer blijft bestaan" #: build/templates/build/build_output_create.html:7 msgid "The Bill of Materials contains trackable parts" -msgstr "" +msgstr "De stuklijst bevat traceerbare onderdelen" #: build/templates/build/build_output_create.html:8 msgid "Build outputs must be generated individually." @@ -1096,27 +1122,27 @@ msgstr "" #: build/templates/build/build_output_create.html:15 msgid "Trackable parts can have serial numbers specified" -msgstr "" +msgstr "Traceerbare onderdelen kunnen een serienummer hebben" #: build/templates/build/build_output_create.html:16 msgid "Enter serial numbers to generate multiple single build outputs" -msgstr "" +msgstr "Voer serienummers in om meerdere bouw-outputs te genereren" #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" -msgstr "" +msgstr "Weet je zeker dat je de bouw wilt annuleren?" #: build/templates/build/complete.html:8 msgid "Build Order is complete" -msgstr "" +msgstr "Bouwopdracht is voltooid" #: build/templates/build/complete.html:12 msgid "Build Order is incomplete" -msgstr "" +msgstr "Bouwopdracht is onvolledig" #: build/templates/build/complete.html:15 msgid "Incompleted build outputs remain" -msgstr "" +msgstr "Onvoltooide bouw outputs blijven" #: build/templates/build/complete.html:18 msgid "Required build quantity has not been completed" @@ -1148,7 +1174,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1166,15 +1192,15 @@ msgstr "" #: build/templates/build/detail.html:38 msgid "Stock Source" -msgstr "" +msgstr "Voorraadbron" #: build/templates/build/detail.html:43 msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "" @@ -1184,24 +1210,24 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 msgid "Batch" -msgstr "" +msgstr "Batch" #: 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:910 +#: templates/js/translated/build.js:933 msgid "Created" -msgstr "" +msgstr "Gecreëerd" #: build/templates/build/detail.html:130 msgid "No target date set" -msgstr "" +msgstr "Geen doeldatum ingesteld" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "" @@ -1223,26 +1249,26 @@ msgstr "" #: build/templates/build/detail.html:173 msgid "Auto Allocate" -msgstr "" +msgstr "Automatisch toewijzen" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" -msgstr "" +msgstr "Niet toegewezen voorraad" #: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638 msgid "Unallocate Stock" -msgstr "" +msgstr "Niet toegewezen voorraad" #: build/templates/build/detail.html:179 msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" -msgstr "" +msgstr "Bestel onderdelen" #: build/templates/build/detail.html:186 msgid "Untracked stock has been fully allocated for this Build Order" @@ -1288,58 +1314,58 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" -msgstr "" +msgstr "Bijlagen" #: build/templates/build/detail.html:257 msgid "Build Notes" -msgstr "" +msgstr "Bouw notities" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" -msgstr "" +msgstr "Notities Bewerken" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "" @@ -1501,9 +1527,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,546 +1582,594 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" -msgstr "" +msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" -msgstr "" +msgstr "Waarde van de instelling" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" -msgstr "" +msgstr "Moet een geheel getal zijn" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" -msgstr "" +msgstr "Waarde moet een booleaanse waarde zijn" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" -msgstr "" +msgstr "Waarde moet een geheel getal zijn" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" -msgstr "" +msgstr "Sleutelreeks moet uniek zijn" + +#: common/models.py:509 +msgid "InvenTree Instance Name" +msgstr "Inventree Instantie Naam" + +#: common/models.py:511 +msgid "String descriptor for the server instance" +msgstr "String-beschrijving voor de server instantie" + +#: common/models.py:515 +msgid "Use instance name" +msgstr "Gebruik de instantie naam" + +#: common/models.py:516 +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:99 company/models.py:100 +msgid "Company name" +msgstr "Bedrijfsnaam" #: common/models.py:523 -msgid "InvenTree Instance Name" -msgstr "" +msgid "Internal company name" +msgstr "Interne bedrijfsnaam" -#: common/models.py:525 -msgid "String descriptor for the server instance" -msgstr "" +#: common/models.py:528 +msgid "Base URL" +msgstr "Basis URL" #: common/models.py:529 -msgid "Use instance name" -msgstr "" +msgid "Base URL for server instance" +msgstr "Basis URL voor serverinstantie" -#: common/models.py:530 -msgid "Use the instance name in the title-bar" -msgstr "" +#: common/models.py:535 +msgid "Default Currency" +msgstr "Standaard valuta" -#: common/models.py:536 company/models.py:97 company/models.py:98 -msgid "Company name" -msgstr "" - -#: common/models.py:537 -msgid "Internal company name" -msgstr "" +#: common/models.py:536 +msgid "Default currency" +msgstr "Standaard valuta" #: common/models.py:542 -msgid "Base URL" -msgstr "" +msgid "Download from URL" +msgstr "Download van URL" #: common/models.py:543 -msgid "Base URL for server instance" -msgstr "" +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 -msgid "Default Currency" -msgstr "" +msgid "Barcode Support" +msgstr "Barcode ondersteuning" #: common/models.py:550 -msgid "Default currency" -msgstr "" +msgid "Enable barcode scanner support" +msgstr "Barcodescanner ondersteuning inschakelen" #: common/models.py:556 -msgid "Download from URL" -msgstr "" +msgid "IPN Regex" +msgstr "IPN Regex" #: common/models.py:557 -msgid "Allow download of remote images and files from external URL" -msgstr "" - -#: common/models.py:563 -msgid "Barcode Support" -msgstr "" - -#: common/models.py:564 -msgid "Enable barcode scanner support" -msgstr "" - -#: common/models.py:570 -msgid "IPN Regex" -msgstr "" - -#: common/models.py:571 msgid "Regular expression pattern for matching Part IPN" -msgstr "" +msgstr "Reguliere expressiepatroon voor het corresponderen van deel IPN" + +#: common/models.py:561 +msgid "Allow Duplicate IPN" +msgstr "Dubbele IPN toestaan" + +#: common/models.py:562 +msgid "Allow multiple parts to share the same IPN" +msgstr "Toestaan dat meerdere onderdelen dezelfde IPN gebruiken" + +#: common/models.py:568 +msgid "Allow Editing IPN" +msgstr "Bewerken IPN toestaan" + +#: common/models.py:569 +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 -msgid "Allow Duplicate IPN" -msgstr "" - -#: common/models.py:576 -msgid "Allow multiple parts to share the same IPN" -msgstr "" - -#: common/models.py:582 -msgid "Allow Editing IPN" -msgstr "" - -#: common/models.py:583 -msgid "Allow changing the IPN value while editing a part" -msgstr "" - -#: common/models.py:589 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" -msgstr "" +msgstr "Interne prijzen" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" -msgstr "" +msgstr "Foutopsporingsmodus" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" -msgstr "" +msgstr "Paginagrootte" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" -msgstr "" +msgstr "Testrapport" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" -msgstr "" +msgstr "Verlopen voorraad" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" -msgstr "" +msgstr "Verlopen voorraad functionaliteit inschakelen" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" -msgstr "" +msgstr "Verkoop verlopen voorraad" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" -msgstr "" +msgstr "Verkoop verlopen voorraad toestaan" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" -msgstr "" +msgstr "dagen" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "" @@ -2123,7 +2197,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 msgid "Link" msgstr "" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ 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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "" @@ -2490,8 +2569,8 @@ msgstr "" msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "" msgid "Options" msgstr "" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: 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:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2649,8 +2728,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "" @@ -2659,8 +2738,8 @@ msgstr "" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "" @@ -2717,41 +2795,41 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2817,8 +2895,8 @@ msgstr "" msgid "New Supplier" msgstr "" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "" @@ -2826,8 +2904,8 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "" @@ -2978,11 +3060,11 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,16 +3341,14 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" -msgstr "" +msgstr "Nieuwe locatie" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" -msgstr "" +msgstr "Maak nieuwe voorraadlocatie" #: order/templates/order/order_cancel.html:8 msgid "Cancelling this order means that the order and line items will no longer be editable." @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,49 +3548,6 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 -msgid "Default Location" +#: part/api.py:700 +msgid "Must be greater than zero" msgstr "" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 +msgid "Default Location" +msgstr "Standaard locatie" + +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3879,13 +3995,13 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" #: part/forms.py:97 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" -msgstr "" +msgstr "Selecteer bovenliggend onderdeel om stuklijst van te kopiëren" #: part/forms.py:103 msgid "Clear existing BOM items" @@ -3923,411 +4039,411 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" -msgstr "" +msgstr "Standaard locatie voor onderdelen in deze categorie" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" #: part/templates/part/bom.html:6 msgid "You do not have permission to edit the BOM." -msgstr "" +msgstr "U heeft geen toestemming om de stuklijst te bewerken." #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4344,7 +4460,7 @@ msgstr "" #: part/templates/part/bom.html:38 msgid "New BOM Item" -msgstr "" +msgstr "Nieuw stuklijstitem" #: part/templates/part/bom.html:41 msgid "Finish Editing" @@ -4352,7 +4468,7 @@ msgstr "" #: part/templates/part/bom.html:46 msgid "Edit BOM" -msgstr "" +msgstr "Bewerk stuklijst" #: part/templates/part/bom.html:50 msgid "Validate Bill of Materials" @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "" @@ -4470,26 +4587,30 @@ 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4584,9 +4705,9 @@ msgstr "" #: part/templates/part/detail.html:90 msgid "Sales Order Allocations" -msgstr "" +msgstr "Toewijzingen verkoopopdracht" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4602,8 +4723,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4630,7 +4751,7 @@ msgstr "" #: part/templates/part/detail.html:274 msgid "Build Order Allocations" -msgstr "" +msgstr "Toewijzingen bouwopdracht" #: part/templates/part/detail.html:283 msgid "Part Suppliers" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" -msgstr "" +msgstr "QR-code weergeven" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" -msgstr "" +msgstr "Label afdrukken" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" -msgstr "" +msgstr "Voorraad acties" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:283 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" -msgstr "" +msgstr "Voorraadlocatie" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5645,7 +5782,7 @@ msgstr "" #: stock/templates/stock/item_base.html:84 templates/stock_table.html:31 msgid "Scan to Location" -msgstr "" +msgstr "Scan naar locatie" #: stock/templates/stock/item_base.html:91 msgid "Printing actions" @@ -5658,7 +5795,7 @@ msgstr "" #: stock/templates/stock/item_base.html:108 #: stock/templates/stock/location.html:69 templates/stock_table.html:57 msgid "Count stock" -msgstr "" +msgstr "Voorraad tellen" #: stock/templates/stock/item_base.html:111 templates/stock_table.html:55 msgid "Add stock" @@ -5675,7 +5812,7 @@ msgstr "" #: stock/templates/stock/item_base.html:121 #: stock/templates/stock/location.html:75 msgid "Transfer stock" -msgstr "" +msgstr "Voorraad overzetten" #: stock/templates/stock/item_base.html:124 msgid "Assign to customer" @@ -5768,9 +5905,9 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" -msgstr "" +msgstr "Geen Locatie ingesteld" #: stock/templates/stock/item_base.html:310 msgid "Barcode Identifier" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5871,11 +6008,11 @@ 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 "" +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 "" +msgstr "Alle voorraadartikelen" #: stock/templates/stock/location.html:55 msgid "Check-in Items" @@ -5883,19 +6020,19 @@ msgstr "" #: stock/templates/stock/location.html:83 msgid "Location actions" -msgstr "" +msgstr "Locatie acties" #: stock/templates/stock/location.html:85 msgid "Edit location" -msgstr "" +msgstr "Bewerk locatie" #: stock/templates/stock/location.html:87 msgid "Delete location" -msgstr "" +msgstr "Verwijder locatie" #: stock/templates/stock/location.html:99 msgid "Location Details" -msgstr "" +msgstr "Locatiegegevens" #: stock/templates/stock/location.html:104 msgid "Location Path" @@ -5903,35 +6040,35 @@ msgstr "" #: stock/templates/stock/location.html:109 msgid "Location Description" -msgstr "" +msgstr "Locatieomschrijving" #: 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 msgid "Sublocations" -msgstr "" +msgstr "Sublocaties" #: stock/templates/stock/location.html:124 msgid "Stock Details" -msgstr "" +msgstr "Voorraadgegevens" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" -msgstr "" +msgstr "Voorraadlocaties" #: stock/templates/stock/location.html:162 templates/stock_table.html:37 msgid "Printing Actions" -msgstr "" +msgstr "Afdrukacties" #: stock/templates/stock/location.html:166 templates/stock_table.html:41 msgid "Print labels" -msgstr "" +msgstr "Labels afdrukken" #: stock/templates/stock/location.html:251 msgid "Create new location" -msgstr "" +msgstr "Maak nieuwe locatie" #: stock/templates/stock/location_delete.html:7 msgid "Are you sure you want to delete this stock location?" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -5992,7 +6129,7 @@ msgstr "" #: stock/views.py:181 msgid "Edit Stock Location" -msgstr "" +msgstr "Bewerk voorraadlocatie" #: stock/views.py:288 stock/views.py:911 stock/views.py:1033 #: stock/views.py:1398 @@ -6001,7 +6138,7 @@ msgstr "" #: stock/views.py:303 msgid "Stock Location QR code" -msgstr "" +msgstr "QR-code voor voorraadlocatie" #: stock/views.py:322 msgid "Assign to Customer" @@ -6017,7 +6154,7 @@ msgstr "" #: stock/views.py:364 msgid "Specify a valid location" -msgstr "" +msgstr "Specificeer een geldige locatie" #: stock/views.py:375 msgid "Stock item returned from customer" @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6053,13 +6190,13 @@ msgstr "" #: stock/views.py:959 msgid "Create new Stock Location" -msgstr "" +msgstr "Maak nieuwe voorraadlocatie" #: stock/views.py:1050 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6073,7 +6210,7 @@ msgstr "" #: stock/views.py:1467 msgid "Delete Stock Location" -msgstr "" +msgstr "Verwijder voorraadlocatie" #: stock/views.py:1480 msgid "Delete Stock Item" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" -msgstr "" +msgid "No stock location set" +msgstr "Geen voorraadlocatie ingesteld" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" -msgstr "" +msgstr "Inkoop" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" -msgstr "" +msgstr "Verkoop" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po index 3c021ab051..28a0a11b21 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -36,7 +36,7 @@ msgstr "Oppgi dato" #: 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "Bekreft" @@ -73,7 +73,7 @@ msgstr "Velg kategori" msgid "Duplicate serial: {n}" msgstr "Dupliser serie: {n}" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "Ugyldig mengde oppgitt" @@ -102,152 +102,178 @@ msgstr "Ingen serienummer funnet" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Antall unike serienummer ({s}) må samsvare mengde ({q})" -#: InvenTree/models.py:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" msgstr "Vedlegg" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "Velg fil å legge ved" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "Kommenter" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "Kommentar til fil" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "Bruker" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "opplastet dato" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:184 msgid "Invalid choice" msgstr "Ugyldig valg" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" msgstr "Navn" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" msgstr "Beskrivelse (valgfritt)" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" msgstr "" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" msgstr "Nummer må være gyldig" -#: InvenTree/settings.py:518 +#: InvenTree/serializers.py:244 +msgid "Filename" +msgstr "" + +#: InvenTree/settings.py:523 msgid "German" msgstr "Tysk" -#: InvenTree/settings.py:519 +#: InvenTree/settings.py:524 msgid "Greek" msgstr "Gresk" -#: InvenTree/settings.py:520 +#: InvenTree/settings.py:525 msgid "English" msgstr "Engelsk" -#: InvenTree/settings.py:521 +#: InvenTree/settings.py:526 msgid "Spanish" msgstr "Spansk" -#: InvenTree/settings.py:522 +#: InvenTree/settings.py:527 msgid "French" msgstr "Fransk" -#: InvenTree/settings.py:523 +#: InvenTree/settings.py:528 msgid "Hebrew" msgstr "Hebraisk" -#: InvenTree/settings.py:524 +#: InvenTree/settings.py:529 msgid "Italian" msgstr "Italiensk" -#: InvenTree/settings.py:525 +#: InvenTree/settings.py:530 msgid "Japanese" msgstr "Japansk" -#: InvenTree/settings.py:526 +#: InvenTree/settings.py:531 msgid "Korean" msgstr "Koreansk" -#: InvenTree/settings.py:527 +#: InvenTree/settings.py:532 msgid "Dutch" msgstr "Nederlandsk" -#: InvenTree/settings.py:528 +#: InvenTree/settings.py:533 msgid "Norwegian" msgstr "Norsk" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:534 msgid "Polish" msgstr "Polsk" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:535 msgid "Russian" msgstr "Russisk" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:536 msgid "Swedish" msgstr "Svensk" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:537 msgid "Thai" msgstr "Thailandsk" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:538 msgid "Turkish" msgstr "Tyrkisk" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:539 msgid "Vietnamese" msgstr "Vietnamesisk" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "Kinesisk" @@ -372,7 +398,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" msgstr "" @@ -432,27 +458,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "" @@ -509,8 +535,8 @@ msgstr "" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "" @@ -522,19 +548,18 @@ msgstr "" #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "" @@ -604,13 +632,13 @@ 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:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "" @@ -649,7 +677,7 @@ msgstr "" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "" @@ -657,9 +685,9 @@ msgstr "" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" @@ -669,14 +697,13 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "" @@ -695,28 +722,28 @@ 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "" @@ -764,7 +791,7 @@ msgstr "" msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "" @@ -772,7 +799,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "" @@ -780,16 +807,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "" @@ -797,7 +824,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "" @@ -808,9 +835,9 @@ 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "" @@ -821,34 +848,33 @@ 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: 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:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "" @@ -881,11 +907,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "" @@ -912,9 +938,9 @@ msgstr "" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "" @@ -936,12 +962,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "" @@ -993,7 +1019,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "" @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "" @@ -1148,7 +1174,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1172,9 +1198,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "" @@ -1184,16 +1210,16 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "" @@ -1201,7 +1227,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "" @@ -1225,7 +1251,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "" @@ -1288,8 +1314,8 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "" @@ -1298,48 +1324,48 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "" @@ -1501,9 +1527,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,546 +1582,594 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "" @@ -2123,7 +2197,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 msgid "Link" msgstr "" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ 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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "" @@ -2490,8 +2569,8 @@ msgstr "" msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "" msgid "Options" msgstr "" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: 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:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2649,8 +2728,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "" @@ -2659,8 +2738,8 @@ msgstr "" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "" @@ -2717,41 +2795,41 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2817,8 +2895,8 @@ msgstr "" msgid "New Supplier" msgstr "" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "" @@ -2826,8 +2904,8 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "" @@ -2978,11 +3060,11 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,49 +3548,6 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3879,7 +3995,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3923,391 +4039,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "" @@ -4470,26 +4587,30 @@ 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4586,7 +4707,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4602,8 +4723,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:283 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5916,7 +6053,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6059,7 +6196,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" +msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po index ef3d82a8b2..496d532c19 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -36,7 +36,7 @@ msgstr "Wprowadź dane" #: 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "Potwierdź" @@ -73,7 +73,7 @@ msgstr "Wybierz kategorię" msgid "Duplicate serial: {n}" msgstr "Powtórzony numer seryjny: {n}" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "Podano nieprawidłową ilość" @@ -102,152 +102,178 @@ msgstr "Nie znaleziono numerów seryjnych" 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:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" msgstr "Załącznik" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "Wybierz plik do załączenia" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "Komentarz" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "Komentarz pliku" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "Użytkownik" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "data przesłania" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:184 msgid "Invalid choice" msgstr "Błędny wybór" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" msgstr "Nazwa" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" msgstr "Opis (opcjonalny)" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" msgstr "nadrzędny" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" msgstr "Numer musi być prawidłowy" -#: InvenTree/settings.py:518 +#: InvenTree/serializers.py:244 +msgid "Filename" +msgstr "" + +#: InvenTree/settings.py:523 msgid "German" msgstr "Niemiecki" -#: InvenTree/settings.py:519 +#: InvenTree/settings.py:524 msgid "Greek" msgstr "Grecki" -#: InvenTree/settings.py:520 +#: InvenTree/settings.py:525 msgid "English" msgstr "Angielski" -#: InvenTree/settings.py:521 +#: InvenTree/settings.py:526 msgid "Spanish" msgstr "Hiszpański" -#: InvenTree/settings.py:522 +#: InvenTree/settings.py:527 msgid "French" msgstr "Francuski" -#: InvenTree/settings.py:523 +#: InvenTree/settings.py:528 msgid "Hebrew" msgstr "Hebrajski" -#: InvenTree/settings.py:524 +#: InvenTree/settings.py:529 msgid "Italian" msgstr "Włoski" -#: InvenTree/settings.py:525 +#: InvenTree/settings.py:530 msgid "Japanese" msgstr "Japoński" -#: InvenTree/settings.py:526 +#: InvenTree/settings.py:531 msgid "Korean" msgstr "Koreański" -#: InvenTree/settings.py:527 +#: InvenTree/settings.py:532 msgid "Dutch" msgstr "Holenderski" -#: InvenTree/settings.py:528 +#: InvenTree/settings.py:533 msgid "Norwegian" msgstr "Norweski" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:534 msgid "Polish" msgstr "Polski" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:535 msgid "Russian" msgstr "Rosyjski" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:536 msgid "Swedish" msgstr "Szwedzki" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:537 msgid "Thai" msgstr "Tajski" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:538 msgid "Turkish" msgstr "Turecki" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:539 msgid "Vietnamese" msgstr "Wietnamski" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "Chiński" @@ -372,7 +398,7 @@ msgstr "" msgid "Split child item" msgstr "Podziel element podrzędny" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" msgstr "Wyślij do klienta" @@ -432,27 +458,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "Usuń element" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "Zaznacz pole aby potwierdzić usunięcie elementu" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "Edytuj informacje użytkownika" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "Ustaw hasło" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "Hasła muszą być zgodne" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "Informacja systemowa" @@ -509,8 +535,8 @@ msgstr "" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "Data docelowa" @@ -522,19 +548,18 @@ msgstr "" #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "Ilość" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "Oznacz budowę jako ukończoną" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "Lokalizacja" @@ -604,13 +632,13 @@ msgid "Location of completed parts" msgstr "Lokalizacja ukończonych części" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:62 order/models.py:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "Status" @@ -649,7 +677,7 @@ msgstr "" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "Zlecenie Budowy" @@ -657,9 +685,9 @@ msgstr "Zlecenie Budowy" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" @@ -669,14 +697,13 @@ msgstr "Zlecenia budowy" msgid "Build Order Reference" msgstr "Odwołanie do zamówienia wykonania" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "Referencja" @@ -695,28 +722,28 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "Część" @@ -764,7 +791,7 @@ msgstr "Ukończone elementy" msgid "Number of stock items which have been completed" msgstr "Ilość produktów magazynowych które zostały ukończone" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "Status budowania" @@ -772,7 +799,7 @@ msgstr "Status budowania" msgid "Build status code" msgstr "Kod statusu budowania" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "Kod partii" @@ -780,16 +807,16 @@ msgstr "Kod partii" msgid "Batch code for this build output" msgstr "Kod partii dla wyjścia budowy" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "Data utworzenia" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "Docelowy termin zakończenia" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "Data zakończenia" @@ -797,7 +824,7 @@ msgstr "Data zakończenia" msgid "completed by" msgstr "zrealizowane przez" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "Wydany przez" @@ -808,9 +835,9 @@ msgstr "Użytkownik, który wydał to zamówienie" #: 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "Odpowiedzialny" @@ -821,34 +848,33 @@ msgstr "Użytkownik odpowiedzialny za to zamówienie budowy" #: 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "Link Zewnętrzny" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: build/models.py:310 part/models.py:715 stock/models.py:509 msgid "Link to external URL" msgstr "Link do zewnętrznego adresu URL" #: build/models.py:314 build/templates/build/navbar.html:52 -#: company/models.py:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "Uwagi" @@ -881,11 +907,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "Przydzielona ilość ({n}) nie może przekraczać dostępnej ilości ({q})" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "Alokowana ilość musi być większa niż zero" @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "Budowa" @@ -912,9 +938,9 @@ msgstr "" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "Element magazynowy" @@ -936,12 +962,12 @@ msgstr "Docelowa lokalizacja magazynowa przedmiotu" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "Numer Seryjny" @@ -993,7 +1019,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "Widok administratora" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "Zaległe" @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "Postęp" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "Zamówienie zakupu" @@ -1148,7 +1174,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1172,9 +1198,9 @@ msgstr "Źródło magazynu" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "Przeznaczenie" @@ -1184,16 +1210,16 @@ msgstr "Nie określono lokalizacji docelowej" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 msgid "Batch" msgstr "Partia" #: 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "Utworzony" @@ -1201,7 +1227,7 @@ msgstr "Utworzony" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "Zakończone" @@ -1225,7 +1251,7 @@ msgstr "Przydziel zapasy do budowy" msgid "Auto Allocate" msgstr "Automatyczne przypisywanie" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "Cofnij przydział zapasów" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "Zamów wymagane komponenty" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "Zamów części" @@ -1288,8 +1314,8 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "Załączniki" @@ -1298,48 +1324,48 @@ msgstr "Załączniki" msgid "Build Notes" msgstr "Notatki tworzenia" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "Dodaj załącznik" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "Edytuj załącznik" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "Usuń załącznik" @@ -1372,7 +1398,7 @@ 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:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "Szczegóły" @@ -1501,9 +1527,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "Dostępne" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,546 +1582,594 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "Ustawienia wartości" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "Nazwa instancji InvenTree" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "Nazwa firmy" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "Bazowy URL" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "Bazowy adres URL dla instancji serwera" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "Pobierz z adresu URL" -#: common/models.py:557 +#: common/models.py:543 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:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "Obsługa kodu kreskowego" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "Włącz obsługę skanera kodów" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "Wyrażenie regularne IPN" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "Zezwól na powtarzający się IPN" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "Zezwól na edycję IPN" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "Skopiuj BOM komponentu" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "Szablon" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "Złożenie" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "Komponent" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "Możliwość zakupu" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "Części są domyślnie z możliwością zakupu" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "Możliwość sprzedaży" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "Części są domyślnie z możliwością sprzedaży" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "Możliwość śledzenia" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "Części są domyślnie z możliwością śledzenia" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "Wirtualny" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "Części są domyślnie wirtualne" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "Pokaż ilość w formularzach" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "Tryb Debugowania" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "Rozmiar strony" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "Raporty testów" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "Włącz generowanie raportów testów" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "dni" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "Grupuj według komponentu" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "Cena" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "Domyślny" @@ -2123,7 +2197,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "URL" msgid "Image URL" msgstr "URL zdjęcia" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "Opis firmy" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "Opis firmy" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "Strona WWW" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "Witryna internetowa firmy" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "Adres" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "Adres firmy" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "Numer telefonu" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "Numer telefonu kontaktowego" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "Adres E-Mail" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "Kontaktowy adres e-mail" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "Kontakt" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "Punkt kontaktowy" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: 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:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "Link do informacji o zewnętrznym przedsiębiorstwie" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "Obraz" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "jest klientem" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "Czy sprzedajesz produkty tej firmie?" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "jest dostawcą" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "Czy kupujesz przedmioty od tej firmy?" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "jest producentem" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "Czy to przedsiębiorstwo produkuje części?" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "Waluta" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "Część bazowa" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "Wybierz część" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "Producent" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "Wybierz producenta" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "MPN" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "Numer producenta" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "Część producenta" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "Jednostki" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "Dostawca" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "Wybierz dostawcę" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "SKU" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "Uwaga" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "koszt podstawowy" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "Opakowanie" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "Opakowanie części" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "wielokrotność" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ 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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "Firma" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "Telefon" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "Klient" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "Komponenty dostawcy" @@ -2490,8 +2569,8 @@ msgstr "Utwórz nowego dostawcę części" msgid "New Supplier Part" msgstr "Nowy dostawca części" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "Nowy dostawca części" msgid "Options" msgstr "Opcje" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "Zamów części" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "Usuń części" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "Usuń części" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "Części producenta" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "Utwórz nową część producenta" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "Nowa część producenta" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "Zapasy dostawcy" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116 msgid "Order part" msgstr "Zamów część" #: company/templates/company/manufacturer_part.html:45 -#: templates/js/translated/company.js:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "Edytuj część producenta" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "Usuń cześć producenta" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "Dostawcy" @@ -2649,8 +2728,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "Usuń" @@ -2659,8 +2738,8 @@ msgstr "Usuń" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "Parametry" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "Dodaj parametr" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "Stan" @@ -2717,41 +2795,41 @@ msgstr "" msgid "Orders" msgstr "Zamówienia" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "Dostarczone części" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "Edytuj przedział cenowy" @@ -2817,8 +2895,8 @@ msgstr "Cennik" msgid "New Supplier" msgstr "Nowy dostawca" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "Producenci" @@ -2826,8 +2904,8 @@ msgstr "Producenci" msgid "New Manufacturer" msgstr "Now producent" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "Klienci" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "Złóż zamówienie" @@ -2978,11 +3060,11 @@ msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie" msgid "Order notes" msgstr "Notatki do zamówienia" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "Odniesienie zamówienia" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "Status zamówienia zakupu" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" @@ -3031,150 +3113,182 @@ msgstr "Ilość musi być większa niż zero" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "Wartość musi być liczbą całkowitą" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "Wartość musi być liczbą dodatnią" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "Data wysyłki" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "wysłane przez" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "Ilość elementów" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "Zamówienie" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "Zlecenie zakupu" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "Odebrane" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "Cena zakupu" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "Cena zakupu jednostkowego" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "Gdzie kupujący chce przechowywać ten przedmiot?" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "Jednostkowa cena sprzedaży" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "Linia" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "Komponent" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "Nowa lokalizacja" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "Przedmioty" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "Dodaj element zamówienia" @@ -3436,49 +3548,6 @@ msgstr "Dodaj element zamówienia" msgid "Order Notes" msgstr "Notatki zamówień" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "Cena jednostkowa" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "Kod zamówienia" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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 "Akcje" -#: order/templates/order/sales_order_detail.html:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "Numer ID" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +msgid "Unit Price" +msgstr "Cena jednostkowa" + +#: 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 "Przydzielono" -#: order/templates/order/sales_order_detail.html:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "Cena zakupu" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: order/templates/order/sales_order_detail.html:487 +#: order/templates/order/sales_order_detail.html:606 msgid "Calculate price" msgstr "Oblicz cenę" #: 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:611 +#: 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 "Zaktualizuj cenę jednostkową" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "Domyślna lokalizacja" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "Dostępna ilość" @@ -3879,7 +3995,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "Część nadrzędna" @@ -3923,391 +4039,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "Domyślne słowa kluczowe" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "Nazwa części" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "Wariant" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "Opis części" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "Słowa kluczowe" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "Kategoria" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "IPN" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "Wersja" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "Minimalny stan magazynowy" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "Czy ta część może być zbudowana z innych części?" -#: part/models.py:810 +#: part/models.py:812 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:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "Aktywny" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "Czy ta część jest aktywna?" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "Sprzedaj wiele" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "Nazwa testu" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "Wymagane" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "Dane" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "Wartość domyślna" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "Podczęść" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "Suma kontrolna" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "Część 1" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "Część 2" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "Wybierz powiązaną część" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "Nie masz uprawnień do edycji BOM." #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "Eksportuj" @@ -4470,26 +4587,30 @@ msgid "Set Category" msgstr "Ustaw kategorię" #: part/templates/part/category.html:141 +msgid "Print Labels" +msgstr "" + +#: part/templates/part/category.html:142 msgid "Export Data" msgstr "Eksportuj dane" -#: part/templates/part/category.html:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "Parametry części" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "Duplikuj część" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "Zapasy części" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4586,7 +4707,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "Warianty Części" @@ -4602,8 +4723,8 @@ msgstr "Nowy wariant" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "Dodaj powiązane" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "Zestawienie materiałowe" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "Użyte w" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "Ceny" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "Lista części" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "Akcje kodów kreskowych" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "Pokaż Kod QR" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "Drukuj etykietę" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "Akcje magazynowe" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "Duplikuj część" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "Edytuj część" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "Usuń część" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +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:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "Cena jednostkowa" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" -msgstr "Czy na pewno chcesz usunąć część '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "Edytuj kategorię części" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "Wynik" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "Data" @@ -5288,51 +5417,51 @@ msgstr "Zaliczone" msgid "Fail" msgstr "Niezaliczone" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "Nieprawidłowa ilość" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "Ilość musi być większa niż zero" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "Data ważności" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "Część podstawowa" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "Ilość w magazynie" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 +#: stock/models.py:599 +msgid "Scheduled for deletion" +msgstr "" + +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" +msgstr "" + +#: stock/models.py:1063 msgid "Part is not set as trackable" msgstr "" -#: stock/models.py:1057 +#: stock/models.py:1069 msgid "Quantity must be integer" msgstr "Ilość musi być liczbą całkowitą" -#: stock/models.py:1063 +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "Lokacje nie są ustawione" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "Ostatnia aktualizacja" @@ -5825,7 +5962,7 @@ msgstr "Czy na pewno chcesz usunąć tą część?" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5916,7 +6053,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6059,7 +6196,7 @@ msgstr "Utwórz nową lokalizację magazynową" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "Błąd 403: Odmowa dostępu" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 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:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "Ilość za" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "Dodaj część producenta" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "Edytuj firmę" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "Dodaj nową firmę" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "Dodaj nowy filtr" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "Kopiuj BOM" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "Cena jednostkowa" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "Dodaj stan" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "Dodaj" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" +msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "Dodano" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po index b5b04e2a28..939a05cdc9 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -36,7 +36,7 @@ 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "Подтвердить" @@ -73,7 +73,7 @@ msgstr "Выбрать категорию" msgid "Duplicate serial: {n}" msgstr "Дублировать серийный номер: {n}" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "недопустимое количество" @@ -102,152 +102,178 @@ msgstr "Серийных номеров не найдено" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})" -#: InvenTree/models.py:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" msgstr "Вложения" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "Выберите файл для вложения" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "Комментарий" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "Комментарий к файлу" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "Пользователь" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "дата загрузки" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:184 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" msgstr "Название" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" msgstr "Описание" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" msgstr "Описание (необязательно)" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" msgstr "родитель" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" msgstr "" -#: InvenTree/settings.py:518 +#: InvenTree/serializers.py:244 +msgid "Filename" +msgstr "" + +#: InvenTree/settings.py:523 msgid "German" msgstr "Немецкий" -#: InvenTree/settings.py:519 +#: InvenTree/settings.py:524 msgid "Greek" msgstr "Греческий" -#: InvenTree/settings.py:520 +#: InvenTree/settings.py:525 msgid "English" msgstr "Английский" -#: InvenTree/settings.py:521 +#: InvenTree/settings.py:526 msgid "Spanish" msgstr "Испанский" -#: InvenTree/settings.py:522 +#: InvenTree/settings.py:527 msgid "French" msgstr "Французский" -#: InvenTree/settings.py:523 +#: InvenTree/settings.py:528 msgid "Hebrew" msgstr "Иврит" -#: InvenTree/settings.py:524 +#: InvenTree/settings.py:529 msgid "Italian" msgstr "Итальянский" -#: InvenTree/settings.py:525 +#: InvenTree/settings.py:530 msgid "Japanese" msgstr "Японский" -#: InvenTree/settings.py:526 +#: InvenTree/settings.py:531 msgid "Korean" msgstr "Корейский" -#: InvenTree/settings.py:527 +#: InvenTree/settings.py:532 msgid "Dutch" msgstr "Голландский" -#: InvenTree/settings.py:528 +#: InvenTree/settings.py:533 msgid "Norwegian" msgstr "Норвежский" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:534 msgid "Polish" msgstr "Польский" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:535 msgid "Russian" msgstr "Русский" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:536 msgid "Swedish" msgstr "Шведский" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:537 msgid "Thai" msgstr "Тайский" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:538 msgid "Turkish" msgstr "Турецкий" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:539 msgid "Vietnamese" msgstr "Вьетнамский" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "Китайский" @@ -372,7 +398,7 @@ msgstr "Отделить от родительского элемента" msgid "Split child item" msgstr "Разбить дочерний элемент" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" msgstr "Отправлено клиенту" @@ -432,27 +458,27 @@ msgstr "Перегрузка не может превысить 100%" msgid "Overage must be an integer value or a percentage" msgstr "Превышение должно быть целым числом или процентом" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "Удалить элемент" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "Установите флажок для подтверждения удаления элемента" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "Редактировать информацию о пользователе" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "Установить пароль" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "Пароли должны совпадать" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "Информация о системе" @@ -509,8 +535,8 @@ msgstr "Срок выполнения заказа" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "Целевая дата" @@ -522,19 +548,18 @@ msgstr "Целевая дата для сборки. Сборка будет п #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "Целевая дата для сборки. Сборка будет п #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "Количество" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "Пометить сборку как завершенную" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "Расположение" @@ -604,13 +632,13 @@ 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:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "Статус" @@ -649,7 +677,7 @@ msgstr "" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "Порядок сборки" @@ -657,9 +685,9 @@ msgstr "Порядок сборки" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" @@ -669,14 +697,13 @@ msgstr "Порядок сборки" msgid "Build Order Reference" msgstr "Ссылка на заказ" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "" @@ -695,28 +722,28 @@ 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "Детали" @@ -764,7 +791,7 @@ msgstr "" msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "" @@ -772,7 +799,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "" @@ -780,16 +807,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "" @@ -797,7 +824,7 @@ msgstr "" msgid "completed by" msgstr "выполнено" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "" @@ -808,9 +835,9 @@ 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "Ответственный" @@ -821,34 +848,33 @@ 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "Внешняя ссылка" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: build/models.py:310 part/models.py:715 stock/models.py:509 msgid "Link to external URL" msgstr "Ссылка на внешний URL" #: build/models.py:314 build/templates/build/navbar.html:52 -#: company/models.py:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "Заметки" @@ -881,11 +907,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "Сборка" @@ -912,9 +938,9 @@ msgstr "" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "" @@ -936,12 +962,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "" @@ -993,7 +1019,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "Просрочено" @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "" @@ -1148,7 +1174,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1172,9 +1198,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "" @@ -1184,16 +1210,16 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "Создано" @@ -1201,7 +1227,7 @@ msgstr "Создано" msgid "No target date set" msgstr "Нет конечной даты" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "" @@ -1225,7 +1251,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "Заказать детали" @@ -1288,8 +1314,8 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "Приложения" @@ -1298,48 +1324,48 @@ msgstr "Приложения" msgid "Build Notes" msgstr "Заметки сборки" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "" @@ -1501,9 +1527,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,546 +1582,594 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "" @@ -2123,7 +2197,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 msgid "Link" msgstr "" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ 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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "" @@ -2490,8 +2569,8 @@ msgstr "" msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "" msgid "Options" msgstr "" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: 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:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2649,8 +2728,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "" @@ -2659,8 +2738,8 @@ msgstr "" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "" @@ -2717,41 +2795,41 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2817,8 +2895,8 @@ msgstr "" msgid "New Supplier" msgstr "" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "" @@ -2826,8 +2904,8 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "" @@ -2978,11 +3060,11 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,49 +3548,6 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3879,7 +3995,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3923,391 +4039,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "" @@ -4470,26 +4587,30 @@ 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4586,7 +4707,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4602,8 +4723,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:283 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5916,7 +6053,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6059,7 +6196,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" +msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po index 8acb080094..a334227f2c 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -19,74 +19,74 @@ msgstr "" #: InvenTree/api.py:64 msgid "API endpoint not found" -msgstr "" +msgstr "API-slutpunkt hittades inte" #: InvenTree/api.py:110 msgid "No action specified" -msgstr "" +msgstr "Ingen åtgärd specificerad" #: InvenTree/api.py:124 msgid "No matching action found" -msgstr "" +msgstr "Ingen matchande åtgärd hittades" #: InvenTree/fields.py:100 msgid "Enter date" -msgstr "" +msgstr "Ange datum" #: 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" -msgstr "" +msgstr "Bekräfta" #: InvenTree/forms.py:127 msgid "Confirm delete" -msgstr "" +msgstr "Bekräfta borttagning" #: InvenTree/forms.py:128 msgid "Confirm item deletion" -msgstr "" +msgstr "Bekräfta borttagning av artikel" #: InvenTree/forms.py:160 templates/registration/login.html:76 msgid "Enter password" -msgstr "" +msgstr "Ange lösenord" #: InvenTree/forms.py:161 msgid "Enter new password" -msgstr "" +msgstr "Ange nytt lösenord" #: InvenTree/forms.py:168 msgid "Confirm password" -msgstr "" +msgstr "Bekräfta lösenord" #: InvenTree/forms.py:169 msgid "Confirm new password" -msgstr "" +msgstr "Bekräfta nytt lösenord" #: InvenTree/forms.py:201 msgid "Select Category" -msgstr "" +msgstr "Välj Kategori" #: InvenTree/helpers.py:401 #, python-brace-format msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" -msgstr "" +msgstr "Ogiltigt antal angivet" #: InvenTree/helpers.py:411 msgid "Empty serial number string" -msgstr "" +msgstr "Tom serienummersträng" #: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439 #: InvenTree/helpers.py:464 #, python-brace-format msgid "Invalid group: {g}" -msgstr "" +msgstr "Ogiltig grupp: {g}" #: InvenTree/helpers.py:469 #, python-brace-format @@ -95,210 +95,236 @@ msgstr "" #: InvenTree/helpers.py:477 msgid "No serial numbers found" -msgstr "" +msgstr "Inga serienummer hittades" #: InvenTree/helpers.py:481 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" -msgstr "" +msgstr "Bilaga" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" -msgstr "" +msgstr "Välj fil att bifoga" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" -msgstr "" +msgstr "Kommentar" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" -msgstr "" +msgstr "Fil kommentar" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" -msgstr "" +msgstr "Användare" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" -msgstr "" +msgstr "uppladdningsdatum" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "Filnamnet får inte vara tomt" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "Ogiltig katalog för bilaga" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "Filnamnet innehåller ogiltiga tecken '{c}'" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "Filnamn saknar ändelse" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "Det finns redan en bilaga med detta filnamn" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "Fel vid namnbyte av fil" + +#: InvenTree/models.py:184 msgid "Invalid choice" -msgstr "" +msgstr "Ogiltigt val" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" -msgstr "" +msgstr "Namn" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" -msgstr "" +msgstr "Beskrivning" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" -msgstr "" +msgstr "Beskrivning (valfritt)" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" -msgstr "" +msgstr "överordnad" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" -msgstr "" +msgstr "Måste vara ett giltigt nummer" -#: InvenTree/settings.py:518 -msgid "German" -msgstr "" - -#: InvenTree/settings.py:519 -msgid "Greek" -msgstr "" - -#: InvenTree/settings.py:520 -msgid "English" -msgstr "" - -#: InvenTree/settings.py:521 -msgid "Spanish" -msgstr "" - -#: InvenTree/settings.py:522 -msgid "French" -msgstr "" +#: InvenTree/serializers.py:244 +msgid "Filename" +msgstr "Filnamn" #: InvenTree/settings.py:523 -msgid "Hebrew" -msgstr "" +msgid "German" +msgstr "Tyska" #: InvenTree/settings.py:524 -msgid "Italian" -msgstr "" +msgid "Greek" +msgstr "Grekiska" #: InvenTree/settings.py:525 -msgid "Japanese" -msgstr "" +msgid "English" +msgstr "Engelska" #: InvenTree/settings.py:526 -msgid "Korean" -msgstr "" +msgid "Spanish" +msgstr "Spanska" #: InvenTree/settings.py:527 -msgid "Dutch" -msgstr "" +msgid "French" +msgstr "Franska" #: InvenTree/settings.py:528 -msgid "Norwegian" -msgstr "" +msgid "Hebrew" +msgstr "Hebreiska" #: InvenTree/settings.py:529 -msgid "Polish" -msgstr "" +msgid "Italian" +msgstr "Italienska" #: InvenTree/settings.py:530 -msgid "Russian" -msgstr "" +msgid "Japanese" +msgstr "Japanska" #: InvenTree/settings.py:531 -msgid "Swedish" -msgstr "" +msgid "Korean" +msgstr "Koreanska" #: InvenTree/settings.py:532 -msgid "Thai" -msgstr "" +msgid "Dutch" +msgstr "Nederländska" #: InvenTree/settings.py:533 -msgid "Turkish" -msgstr "" +msgid "Norwegian" +msgstr "Norska" #: InvenTree/settings.py:534 -msgid "Vietnamese" -msgstr "" +msgid "Polish" +msgstr "Polska" #: InvenTree/settings.py:535 +msgid "Russian" +msgstr "Ryska" + +#: InvenTree/settings.py:536 +msgid "Swedish" +msgstr "Svenska" + +#: InvenTree/settings.py:537 +msgid "Thai" +msgstr "Thailändska" + +#: InvenTree/settings.py:538 +msgid "Turkish" +msgstr "Turkiska" + +#: InvenTree/settings.py:539 +msgid "Vietnamese" +msgstr "Vietnamesiska" + +#: InvenTree/settings.py:540 msgid "Chinese" -msgstr "" +msgstr "Kinesiska" #: InvenTree/status.py:94 msgid "Background worker check failed" -msgstr "" +msgstr "Kontroll av bakgrundsarbetare misslyckades" #: InvenTree/status.py:98 msgid "Email backend not configured" -msgstr "" +msgstr "Backend för e-post är inte konfigurerad" #: InvenTree/status.py:101 msgid "InvenTree system health checks failed" -msgstr "" +msgstr "InvenTree systemhälsokontroll misslyckades" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 #: InvenTree/status_codes.py:314 msgid "Pending" -msgstr "" +msgstr "Väntar" #: InvenTree/status_codes.py:105 msgid "Placed" -msgstr "" +msgstr "Placerad" #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" -msgstr "" +msgstr "Slutför" #: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 #: InvenTree/status_codes.py:316 msgid "Cancelled" -msgstr "" +msgstr "Avbruten" #: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 #: InvenTree/status_codes.py:190 msgid "Lost" -msgstr "" +msgstr "Förlorad" #: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 #: InvenTree/status_codes.py:192 msgid "Returned" -msgstr "" +msgstr "Återlämnad" #: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:126 msgid "Shipped" -msgstr "" +msgstr "Skickad" #: InvenTree/status_codes.py:186 msgid "OK" -msgstr "" +msgstr "OK" #: InvenTree/status_codes.py:187 msgid "Attention needed" @@ -306,15 +332,15 @@ msgstr "" #: InvenTree/status_codes.py:188 msgid "Damaged" -msgstr "" +msgstr "Skadad" #: InvenTree/status_codes.py:189 msgid "Destroyed" -msgstr "" +msgstr "Förstörd" #: InvenTree/status_codes.py:191 msgid "Rejected" -msgstr "" +msgstr "Avvisad" #: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" @@ -372,7 +398,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" msgstr "" @@ -432,27 +458,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "" @@ -509,8 +535,8 @@ msgstr "" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "" @@ -522,19 +548,18 @@ msgstr "" #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "" @@ -604,13 +632,13 @@ 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:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "" @@ -649,7 +677,7 @@ msgstr "" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "" @@ -657,9 +685,9 @@ msgstr "" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" @@ -669,14 +697,13 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "" @@ -695,28 +722,28 @@ 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "" @@ -764,7 +791,7 @@ msgstr "" msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "" @@ -772,7 +799,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "" @@ -780,16 +807,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "" @@ -797,7 +824,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "" @@ -808,9 +835,9 @@ 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "" @@ -821,34 +848,33 @@ 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: 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:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "" @@ -881,11 +907,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "" @@ -912,9 +938,9 @@ msgstr "" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "" @@ -936,12 +962,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "" @@ -993,7 +1019,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "" @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "" @@ -1148,7 +1174,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1172,9 +1198,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "" @@ -1184,16 +1210,16 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "" @@ -1201,7 +1227,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "" @@ -1225,7 +1251,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "" @@ -1288,8 +1314,8 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "" @@ -1298,48 +1324,48 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "" @@ -1501,9 +1527,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,546 +1582,594 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "" @@ -2123,7 +2197,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 msgid "Link" msgstr "" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ 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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "" @@ -2490,8 +2569,8 @@ msgstr "" msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "" msgid "Options" msgstr "" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: 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:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2649,8 +2728,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "" @@ -2659,8 +2738,8 @@ msgstr "" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "" @@ -2717,41 +2795,41 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2817,8 +2895,8 @@ msgstr "" msgid "New Supplier" msgstr "" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "" @@ -2826,8 +2904,8 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "" @@ -2978,11 +3060,11 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,49 +3548,6 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3879,7 +3995,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3923,391 +4039,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "" @@ -4470,26 +4587,30 @@ 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4586,7 +4707,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4602,8 +4723,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:283 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5916,7 +6053,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6059,7 +6196,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" +msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po index 1adb94f81f..3ddc15ea2e 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -36,7 +36,7 @@ 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "" @@ -73,7 +73,7 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "" @@ -102,152 +102,178 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" msgstr "" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:184 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" msgstr "" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" msgstr "" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" msgstr "" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" msgstr "" -#: InvenTree/settings.py:518 -msgid "German" -msgstr "" - -#: InvenTree/settings.py:519 -msgid "Greek" -msgstr "" - -#: InvenTree/settings.py:520 -msgid "English" -msgstr "" - -#: InvenTree/settings.py:521 -msgid "Spanish" -msgstr "" - -#: InvenTree/settings.py:522 -msgid "French" +#: InvenTree/serializers.py:244 +msgid "Filename" msgstr "" #: InvenTree/settings.py:523 -msgid "Hebrew" +msgid "German" msgstr "" #: InvenTree/settings.py:524 -msgid "Italian" +msgid "Greek" msgstr "" #: InvenTree/settings.py:525 -msgid "Japanese" +msgid "English" msgstr "" #: InvenTree/settings.py:526 -msgid "Korean" +msgid "Spanish" msgstr "" #: InvenTree/settings.py:527 -msgid "Dutch" +msgid "French" msgstr "" #: InvenTree/settings.py:528 -msgid "Norwegian" +msgid "Hebrew" msgstr "" #: InvenTree/settings.py:529 -msgid "Polish" +msgid "Italian" msgstr "" #: InvenTree/settings.py:530 -msgid "Russian" +msgid "Japanese" msgstr "" #: InvenTree/settings.py:531 -msgid "Swedish" +msgid "Korean" msgstr "" #: InvenTree/settings.py:532 -msgid "Thai" +msgid "Dutch" msgstr "" #: InvenTree/settings.py:533 -msgid "Turkish" +msgid "Norwegian" msgstr "" #: InvenTree/settings.py:534 -msgid "Vietnamese" +msgid "Polish" msgstr "" #: InvenTree/settings.py:535 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:536 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:537 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:538 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:539 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "" @@ -372,7 +398,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" msgstr "" @@ -432,27 +458,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "" @@ -509,8 +535,8 @@ msgstr "" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "" @@ -522,19 +548,18 @@ msgstr "" #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "" @@ -604,13 +632,13 @@ 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:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "" @@ -649,7 +677,7 @@ msgstr "" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "" @@ -657,9 +685,9 @@ msgstr "" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" @@ -669,14 +697,13 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "" @@ -695,28 +722,28 @@ 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "" @@ -764,7 +791,7 @@ msgstr "" msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "" @@ -772,7 +799,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "" @@ -780,16 +807,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "" @@ -797,7 +824,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "" @@ -808,9 +835,9 @@ 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "" @@ -821,34 +848,33 @@ 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: 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:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "" @@ -881,11 +907,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "" @@ -912,9 +938,9 @@ msgstr "" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "" @@ -936,12 +962,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "" @@ -993,7 +1019,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "" @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "" @@ -1148,7 +1174,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1172,9 +1198,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "" @@ -1184,16 +1210,16 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "" @@ -1201,7 +1227,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "" @@ -1225,7 +1251,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "" @@ -1288,8 +1314,8 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "" @@ -1298,48 +1324,48 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "" @@ -1501,9 +1527,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,546 +1582,594 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "" @@ -2123,7 +2197,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 msgid "Link" msgstr "" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ 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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "" @@ -2490,8 +2569,8 @@ msgstr "" msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "" msgid "Options" msgstr "" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: 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:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2649,8 +2728,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "" @@ -2659,8 +2738,8 @@ msgstr "" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "" @@ -2717,41 +2795,41 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2817,8 +2895,8 @@ msgstr "" msgid "New Supplier" msgstr "" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "" @@ -2826,8 +2904,8 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "" @@ -2978,11 +3060,11 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,49 +3548,6 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3879,7 +3995,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3923,391 +4039,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "" @@ -4470,26 +4587,30 @@ 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4586,7 +4707,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4602,8 +4723,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:283 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5916,7 +6053,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6059,7 +6196,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" +msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po index b51c8640a5..4e539b858a 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -36,7 +36,7 @@ msgstr "Tarih giriniz" #: 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "Onay" @@ -73,7 +73,7 @@ msgstr "Kategori Seçin" msgid "Duplicate serial: {n}" msgstr "Tekrarlanan seri {n}" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "Geçersiz veri sağlandı" @@ -102,152 +102,178 @@ msgstr "Seri numarası bulunamadı" 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:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" msgstr "Ek" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "Eklenecek dosyayı seç" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "Yorum" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "Dosya yorumu" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "Kullanıcı" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "yükleme tarihi" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:184 msgid "Invalid choice" msgstr "Geçersiz seçim" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" msgstr "Adı" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" msgstr "Açıklama" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" msgstr "Açıklama (isteğe bağlı)" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" msgstr "üst" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" msgstr "Geçerli bir numara olmalı" -#: InvenTree/settings.py:518 +#: InvenTree/serializers.py:244 +msgid "Filename" +msgstr "" + +#: InvenTree/settings.py:523 msgid "German" msgstr "Almanca" -#: InvenTree/settings.py:519 +#: InvenTree/settings.py:524 msgid "Greek" msgstr "Yunanca" -#: InvenTree/settings.py:520 +#: InvenTree/settings.py:525 msgid "English" msgstr "İngilizce" -#: InvenTree/settings.py:521 +#: InvenTree/settings.py:526 msgid "Spanish" msgstr "İspanyolca" -#: InvenTree/settings.py:522 +#: InvenTree/settings.py:527 msgid "French" msgstr "Fransızca" -#: InvenTree/settings.py:523 +#: InvenTree/settings.py:528 msgid "Hebrew" msgstr "İbranice" -#: InvenTree/settings.py:524 +#: InvenTree/settings.py:529 msgid "Italian" msgstr "İtalyanca" -#: InvenTree/settings.py:525 +#: InvenTree/settings.py:530 msgid "Japanese" msgstr "Japonca" -#: InvenTree/settings.py:526 +#: InvenTree/settings.py:531 msgid "Korean" msgstr "Korece" -#: InvenTree/settings.py:527 +#: InvenTree/settings.py:532 msgid "Dutch" msgstr "Flemenkçe" -#: InvenTree/settings.py:528 +#: InvenTree/settings.py:533 msgid "Norwegian" msgstr "Norveççe" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:534 msgid "Polish" msgstr "Polonyaca" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:535 msgid "Russian" msgstr "Rusça" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:536 msgid "Swedish" msgstr "İsveççe" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:537 msgid "Thai" msgstr "Tay dili" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:538 msgid "Turkish" msgstr "Türkçe" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:539 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "Çince" @@ -372,7 +398,7 @@ msgstr "Üst ögeden ayır" msgid "Split child item" msgstr "Alt ögeyi ayır" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" msgstr "Müşteriye gönderildi" @@ -432,27 +458,27 @@ msgstr "Fazlalık %100'ü geçmemelidir" msgid "Overage must be an integer value or a percentage" msgstr "Fazlalık bir tamsayı veya yüzde olmalıdır" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "Ögeyi Sil" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "Öge silme işlemini onaylamak için kutuyu işaretleyin" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "Kullanıcı Bilgisini Düzenle" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "Şifre Belirle" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "Parola alanları eşleşmelidir" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "Sistem Bilgisi" @@ -509,8 +535,8 @@ msgstr "Emir hedef tarihi" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "Hedeflenen tarih" @@ -522,19 +548,18 @@ msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "Miktar" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "Yapım işini tamamlandı olarak işaretle" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "Konum" @@ -604,13 +632,13 @@ msgid "Location of completed parts" msgstr "Tamamlanmış parçaların konumu" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:62 order/models.py:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "Durum" @@ -649,7 +677,7 @@ msgstr "" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "Yapım İşi Emri" @@ -657,9 +685,9 @@ msgstr "Yapım İşi Emri" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" @@ -669,14 +697,13 @@ msgstr "Yapım İşi Emirleri" msgid "Build Order Reference" msgstr "Yapım İşi Emri Referansı" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "Referans" @@ -695,28 +722,28 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "Parça" @@ -764,7 +791,7 @@ msgstr "Tamamlanmış ögeler" msgid "Number of stock items which have been completed" msgstr "Tamamlanan stok kalemlerinin sayısı" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "Yapım İşi Durumu" @@ -772,7 +799,7 @@ msgstr "Yapım İşi Durumu" msgid "Build status code" msgstr "Yapım işi durum kodu" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "Sıra numarası" @@ -780,16 +807,16 @@ msgstr "Sıra numarası" msgid "Batch code for this build output" msgstr "Yapım işi çıktısı için sıra numarası" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "Oluşturulma tarihi" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "Hedef tamamlama tarihi" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "Tamamlama tarihi" @@ -797,7 +824,7 @@ msgstr "Tamamlama tarihi" msgid "completed by" msgstr "tamamlayan" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "Veren" @@ -808,9 +835,9 @@ msgstr "Bu yapım işi emrini veren kullanıcı" #: 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "Sorumlu" @@ -821,34 +848,33 @@ msgstr "Bu yapım işi emrinden sorumlu kullanıcı" #: 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "Harici Bağlantı" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: build/models.py:310 part/models.py:715 stock/models.py:509 msgid "Link to external URL" msgstr "Harici URL'ye bağlantı" #: build/models.py:314 build/templates/build/navbar.html:52 -#: company/models.py:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "Notlar" @@ -881,11 +907,11 @@ msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktıs msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "Tahsis edilecek miktar ({n}) mevcut miktarı ({q}) geçmemeli" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "Stok kalemi fazladan tahsis edilmiş" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır" @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "{p} parçasının malzeme listesindeki seçili stok kalemi bulunamadı" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "Yapım İşi" @@ -912,9 +938,9 @@ msgstr "Yapım işi için tahsis edilen parçalar" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "Stok Kalemi" @@ -936,12 +962,12 @@ msgstr "Hedef stok kalemi" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "Seri Numara" @@ -993,7 +1019,7 @@ msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "Yönetici görünümü" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "Vadesi geçmiş" @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "İlerleme" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "Sipariş Emri" @@ -1148,8 +1174,8 @@ msgstr "Seçili yapım işi emri için tahsis edilecek bir stok kalemi seçiniz" #: 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 "Tahsis edilen stok bu yapım işi çıktısının kurulmasında kullanılacak:
      %(output)s" +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 @@ -1172,9 +1198,9 @@ msgstr "Stok Kaynağı" msgid "Stock can be taken from any available location." msgstr "Stok herhangi bir konumdan alınabilir." -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "Hedef" @@ -1184,16 +1210,16 @@ msgstr "Hedef konumu belirtilmedi" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 msgid "Batch" msgstr "Toplu" #: 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "Oluşturuldu" @@ -1201,7 +1227,7 @@ msgstr "Oluşturuldu" msgid "No target date set" msgstr "Hedef tarih ayarlanmadı" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "Tamamlandı" @@ -1225,7 +1251,7 @@ msgstr "Yapım işi için stok tahsis et" msgid "Auto Allocate" msgstr "Otomatik Tahsis Et" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "Stok tahsisini kaldır" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "Gerekli parçaları sipariş edin" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "Parça Siparişi" @@ -1288,8 +1314,8 @@ msgstr "Tamamlanmış Yapım İşi Çıktıları" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "Ekler" @@ -1298,48 +1324,48 @@ msgstr "Ekler" msgid "Build Notes" msgstr "Yapım İşi Notları" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "Notları Düzenle" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "Dosya Ekle" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "Ek Düzenle" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "Silme İşlemini Onayla" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "Eki Sil" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "Yapım İşi Emri Detayları" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "Detaylar" @@ -1501,9 +1527,9 @@ msgstr "Öge stokta bulunmalı" msgid "Stock item is over-allocated" msgstr "Stok kalemi fazladan tahsis edilmiş" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "Mevcut" @@ -1539,7 +1565,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:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "Dosya" @@ -1556,546 +1582,594 @@ msgstr "{name.title()} Dosya" msgid "Select {name} file to upload" msgstr "{name} dosyasını yüklemek için seçin" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "Bir tam sayı olmalı" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "Anahtar dizesi benzersiz olmalı" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "Şirket adı" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "Ana URL" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "Varsayılan Para Birimi" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "Varsayılan para birimi" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "URL'den indir" -#: common/models.py:557 +#: common/models.py:543 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:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "Barkod Desteği" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "Barkod tarayıcı desteğini etkinleştir" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "DPN Regex" -#: common/models.py:571 +#: common/models.py:557 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:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "Yinelenen DPN'ye İzin Ver" -#: common/models.py:576 +#: common/models.py:562 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:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "DPN Düzenlemeye İzin Ver" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "Kategori Paremetre Sablonu Kopyala" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "Parça oluştururken kategori parametre şablonlarını kopyala" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "Şablon" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "Parçaları varsayılan olan şablondur" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "Montaj" -#: common/models.py:625 +#: common/models.py:611 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:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "Bileşen" -#: common/models.py:632 +#: common/models.py:618 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:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "Satın Alınabilir" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "Parçalar varsayılan olarak satın alınabilir" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "Satılabilir" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "Parçalar varsayılan olarak satılabilir" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "Takip Edilebilir" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "Parçalar varsayılan olarak takip edilebilir" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "Sanal" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "Parçalar varsayılan olarak sanaldır" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "Formlarda Miktarı Göster" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "Formlarda Fiyat Göster" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "İlgili parçaları göster" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "Hata Ayıklama Modu" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "Sayfa Boyutu" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "PDF raporlar için varsayılan sayfa boyutu" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "Test Raporları" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "günler" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "Fiyat" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "Varsayılan" @@ -2123,7 +2197,7 @@ msgstr "Kullanıcı Ayarlarını Değiştir" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "Şirket web sitesi" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "Adres" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "Şirket adresi" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "Telefon numarası" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "İletişim telefon numarası" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "E-posta" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "İletişim e-posta adresi" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "İletişim" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: 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:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "Resim" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "müşteri mi" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "Bu şirkete ürün satıyor musunuz?" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "tedarikçi mi" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "Bu şirketten ürün satın alıyor musunuz?" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "üretici mi" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "Bu şirket üretim yapıyor mu?" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "Para birimi" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "Bu şirket için varsayılan para birimi" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "Temel Parça" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "Parça seçin" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "Üretici" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "Üretici seçin" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "ÜPN" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "Üretici Parça Numarası" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "Parametre adı" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "Değer" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "Parametre değeri" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "Tedarikçi" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "Tedarikçi seçin" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "SKU" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "Not" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "temel maliyet" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "Paketleme" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "çoklu" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ msgstr "Para Birimi Kodu" #: company/templates/company/company_base.html:9 #: company/templates/company/company_base.html:35 -#: templates/InvenTree/search.html:304 templates/js/translated/company.js:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "Satın Alma Emri Oluştur" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "Müşteri" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "Tedarikçi Parçaları" @@ -2490,8 +2569,8 @@ msgstr "Yeni tedarikçi parçası oluştur" msgid "New Supplier Part" msgstr "Yeni Tedarikçi Parçası" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "Yeni Tedarikçi Parçası" msgid "Options" msgstr "" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "Parçaları sil" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "Parçaları Sil" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "Tedarikçi Stoku" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "Satın Alma Emirleri" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "Yeni satın alma emri oluştur" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "Yeni Satın Alma Emri" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "Satış Emirleri" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "Yeni satış emri oluştur" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Yeni Satış Emri" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "Atanan Stok" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116 msgid "Order part" msgstr "Parça siparişi" #: company/templates/company/manufacturer_part.html:45 -#: templates/js/translated/company.js:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2649,8 +2728,8 @@ msgstr "Tedarikçi parçalarını sil" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "" @@ -2659,8 +2738,8 @@ msgstr "" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "Stok" @@ -2717,41 +2795,41 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "Stok Kalemleri" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "Tedarikçi Parçası" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "Tedarikçi parçasını düzenle" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "Tedarikçi parçasını sil" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2817,8 +2895,8 @@ msgstr "Fiyatlandırma" msgid "New Supplier" msgstr "Yeni Tedarikçi" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "Üreticiler" @@ -2826,8 +2904,8 @@ msgstr "Üreticiler" msgid "New Manufacturer" msgstr "Yeni Üretici" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "Müşteriler" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "Sipariş ver" @@ -2978,11 +3060,11 @@ msgstr "" msgid "Order notes" msgstr "Sipariş notları" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "Sipariş referansı" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Tahsis miktarı stok miktarını aşamaz" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "Seri numaralı stok kalemi için miktar bir olmalı" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "Stok tahsis miktarını girin" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "Yeni Konum" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "Yeni stok konumu oluştur" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "Sipariş Emri için Dosya Yükle" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "Ürünler" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,49 +3548,6 @@ msgstr "" msgid "Order Notes" msgstr "Sipariş Notları" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "Toplam fiyat" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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 "İşlemler" -#: order/templates/order/sales_order_detail.html:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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 "Stok tahsisini düzenle" -#: order/templates/order/sales_order_detail.html:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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 "Stok tahsisini sil" -#: order/templates/order/sales_order_detail.html:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "ID" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +msgid "Unit Price" +msgstr "" + +#: order/templates/order/sales_order_detail.html:384 +#: templates/js/translated/order.js:543 +msgid "Total price" +msgstr "Toplam fiyat" + +#: 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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "Seri numaralarını tahsis et" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "Varsayılan Konum" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3879,7 +3995,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:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3923,391 +4039,391 @@ msgstr "Parametre şablonunu tüm kategorilere ekle" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "Bu kategori içindeki parçalar için varsayılan konum" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "Parça Kategorileri" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "Sonraki kullanılabilir seri numaraları" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "Sonraki müsait seri numarası" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "En son seri numarası" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "Parça adı" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "Şablon Mu" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "Bu parça bir şablon parçası mı?" -#: part/models.py:673 +#: part/models.py:675 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:674 +#: part/models.py:676 msgid "Variant Of" msgstr "Çeşidi" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "Parça açıklaması" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "Anahtar kelimeler" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "DPN" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "Parça revizyon veya versiyon numarası" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "Revizyon" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "Varsayılan Tedarikçi" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "Varsayılan tedarikçi parçası" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "Minimum Stok" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "Bu parça diğer parçalardan yapılabilir mi?" -#: part/models.py:810 +#: part/models.py:812 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:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "Bu parça müşterilere satılabilir mi?" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "Aktif" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "Bu parça aktif mi?" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "Oluşturan Kullanıcı" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 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:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "Test Adı" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "Test Açıklaması" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "Gerekli" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "Testi geçmesi için bu gerekli mi?" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "Parametre şablon adı benzersiz olmalıdır" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "Parametre Şablonu" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 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:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "Çeşide İzin Ver" -#: part/models.py:2365 +#: part/models.py:2381 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:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 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:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "Malzeme Listesi Şablonu Yükle" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "Parçalar (Alt kategoriler dahil)" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "" @@ -4470,26 +4587,30 @@ msgid "Set Category" msgstr "Kategori Ayarla" #: 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "Parça Stoku" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" -msgstr "%(full_name)s için tüm çeşitlerin stokları gösteriliyor" +msgid "Showing stock for all variants of %(full_name)s" +msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "Parça Test Şablonları" @@ -4586,7 +4707,7 @@ msgstr "Yeni Sipariş" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "Parça Çeşitleri" @@ -4602,8 +4723,8 @@ msgstr "Yeni Çeşit" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "Çeşitler" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "Fiyatlar" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: 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:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: 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:42 +#: 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:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "Barkod işlemleri" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "Etiket Yazdır" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "Stok işlemleri" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "Parça işlemleri" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, 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:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "Yapım İşi Emirleri için Gerekli" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "Satış Emirleri için Gerekli" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +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:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "Hesapla" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "Birim Maliyeti" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "Toplam Maliyet" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "Bu parçası için tanımlanmış %(count)s tedarikçi bulunmaktadır. Bu parçayı silerseniz, aşağıdaki tedarikçi parçaları da silinecektir:" -#: 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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ 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:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "Stok Yok" @@ -5032,10 +5161,10 @@ msgstr "Yeni parça çeşidi oluştur" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." -msgstr "%(full_name)s şablonu için yeni bir çeşit oluştur." +msgid "Create a new variant of template '%(full_name)s'." +msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "Parça Parametre Şablonu Oluştur" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "Parça Parametre Şablonu Düzenle" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "Parça Parametre Şablonu Sil" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "Kategori Parametre Şablonu Oluştur" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "Kategori Parametre Şablonu Düzenle" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "Kategori Parametre Şablonu Sil" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "{n} öge için stok güncellendi" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "Kurulu stok kalemlerinin kaldırılmasını onayla" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "Bu seri numarasına sahip stok kalemi zaten var" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "Seri numarası olan ögenin miktarı bir olmalı" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "Miktar birden büyük ise seri numarası ayarlanamaz" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "Üst Stok Kalemi" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 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:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "Stok Konumu" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "Bu öge için seri numarası" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "Seri numaraları tam sayı listesi olmalı" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "Miktar seri numaları ile eşleşmiyor" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "Seri numaraları zaten mevcut: {exists}" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "Stok kalemi stokta olmadığı için taşınamaz" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "Konum ayarlanmadı" @@ -5795,7 +5932,7 @@ 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:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5916,7 +6053,7 @@ msgstr "Alt konumlar" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "Stok Konumları" @@ -5975,8 +6112,8 @@ msgstr "Stok Kalemine Dönüştür" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" -msgstr "Bu stok kalemi şu anda %(part)s parçasının örneğidir" +msgid "This stock item is current an instance of %(part)s" +msgstr "" #: stock/templates/stock/stockitem_convert.html:9 msgid "It can be converted to one of the part variants listed below." @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "Stok ayarlamasını onayla" @@ -6059,7 +6196,7 @@ msgstr "Yeni Stok konumu oluştur" msgid "Serialize Stock" msgstr "Stoku Seri Numarala" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "Stok konumu ayarlanmadı" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "Kategori parametre şablonu bulunamadı" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "Şablonu Düzenle" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "Şablonu Sil" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "Parça parametre şablonu bulunamadı" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "InvenTree Sürüm Bilgisi" msgid "InvenTree Version" msgstr "InvenTree Sürümü" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "Güncel" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "Güncelleme Mevcut" -#: templates/about.html:34 -msgid "API Version" -msgstr "API Sürümü" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "Python Sürümü" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "Django Sürümü" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "Commit Hash Değeri" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "Commit Tarihi" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: 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:73 +#: templates/about.html:80 msgid "Credits" msgstr "Katkıda Bulunanlar" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "Mobil Uygulama" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "Hata Raporu Gönder" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "panoya kopyala" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "sürüm bilgisini kopyala" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "Kapat" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "Cevap Yok" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 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:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "Stok Kalemlerini bu konuma kaydet" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "Stok kalemi zaten bu konumda" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "Konuma Kaydet" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "Barkod geçerli bir konumla eşleşmiyor" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "Gerekli Parça" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "Şablon Parça" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "doğru" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "yanlış" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 +#: templates/js/translated/helpers.js:19 +msgid "YES" +msgstr "" + +#: templates/js/translated/helpers.js:21 +msgid "NO" +msgstr "" + +#: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "Etiket yazdırılmadan önce stok kalemleri seçilmeli" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 msgid "No Labels Found" msgstr "Etiket Bulunamadı" -#: templates/js/translated/label.js:30 +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "Seçili stok kalemleri için etiket bulunamadı" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "Stok Konumu Seç" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "Etiket yazdırılmadan önce stok konumları seçilmeli" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "Seçili konumlarla eşleşen etiket bulunamadı" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "Etiket Seç" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "Etiket Şablonu Seç" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "Çeşit bulunamadı" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "Sorgu ile eşleşen test şablonu bulunamadı" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" -msgstr "" +msgid "No stock location set" +msgstr "Stok konumu ayarlanmadı" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "konumlar" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "Tanımsız konum" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "konumlar" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "Tanımsız konum" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "Konum artık yok" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "Seri No" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "Çeşit Stokuna İzin Ver" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "Alt konumları dahil et" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "Konumları dahil et" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "Seri Numaralı" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "Seri numarası BvE" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "Seri numarası büyük veya eşit" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "Seri numarası KvE" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "Seri numarası küçük veya eşit" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "Seri numarası" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "Alt konumlardaki stoku dahil et" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "Çeşitleri Dahil Et" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "Çeşit parçaların stok kalemlerini dahil et" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "Alt kategorilerdeki parçaları dahil et" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "DPN Var" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po index 8c651efac6..dc5f4009a3 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -36,7 +36,7 @@ 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "" @@ -73,7 +73,7 @@ msgstr "" msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" msgstr "" @@ -102,152 +102,178 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" msgstr "" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "" -#: InvenTree/models.py:113 +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "" + +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "" + +#: InvenTree/models.py:184 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: 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/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:1483 msgid "Name" msgstr "" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" msgstr "" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" msgstr "" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" msgstr "" -#: InvenTree/settings.py:518 -msgid "German" -msgstr "" - -#: InvenTree/settings.py:519 -msgid "Greek" -msgstr "" - -#: InvenTree/settings.py:520 -msgid "English" -msgstr "" - -#: InvenTree/settings.py:521 -msgid "Spanish" -msgstr "" - -#: InvenTree/settings.py:522 -msgid "French" +#: InvenTree/serializers.py:244 +msgid "Filename" msgstr "" #: InvenTree/settings.py:523 -msgid "Hebrew" +msgid "German" msgstr "" #: InvenTree/settings.py:524 -msgid "Italian" +msgid "Greek" msgstr "" #: InvenTree/settings.py:525 -msgid "Japanese" +msgid "English" msgstr "" #: InvenTree/settings.py:526 -msgid "Korean" +msgid "Spanish" msgstr "" #: InvenTree/settings.py:527 -msgid "Dutch" +msgid "French" msgstr "" #: InvenTree/settings.py:528 -msgid "Norwegian" +msgid "Hebrew" msgstr "" #: InvenTree/settings.py:529 -msgid "Polish" +msgid "Italian" msgstr "" #: InvenTree/settings.py:530 -msgid "Russian" +msgid "Japanese" msgstr "" #: InvenTree/settings.py:531 -msgid "Swedish" +msgid "Korean" msgstr "" #: InvenTree/settings.py:532 -msgid "Thai" +msgid "Dutch" msgstr "" #: InvenTree/settings.py:533 -msgid "Turkish" +msgid "Norwegian" msgstr "" #: InvenTree/settings.py:534 -msgid "Vietnamese" +msgid "Polish" msgstr "" #: InvenTree/settings.py:535 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:536 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:537 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:538 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:539 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:540 msgid "Chinese" msgstr "" @@ -372,7 +398,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" msgstr "" @@ -432,27 +458,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" msgstr "" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" msgstr "" @@ -509,8 +535,8 @@ msgstr "" #: 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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" msgstr "" @@ -522,19 +548,18 @@ msgstr "" #: 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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,13 +567,14 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" msgstr "" @@ -589,13 +615,15 @@ msgid "Mark build as complete" msgstr "" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "" @@ -604,13 +632,13 @@ 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:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "" @@ -649,7 +677,7 @@ msgstr "" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" msgstr "" @@ -657,9 +685,9 @@ msgstr "" #: 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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" @@ -669,14 +697,13 @@ msgstr "" msgid "Build Order Reference" msgstr "" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" msgstr "" @@ -695,28 +722,28 @@ 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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" msgstr "" @@ -764,7 +791,7 @@ msgstr "" msgid "Number of stock items which have been completed" msgstr "" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" msgstr "" @@ -772,7 +799,7 @@ msgstr "" msgid "Build status code" msgstr "" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" msgstr "" @@ -780,16 +807,16 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" msgstr "" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" msgstr "" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" msgstr "" @@ -797,7 +824,7 @@ msgstr "" msgid "completed by" msgstr "" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" msgstr "" @@ -808,9 +835,9 @@ 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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" msgstr "" @@ -821,34 +848,33 @@ 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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" msgstr "" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: 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:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" msgstr "" @@ -881,11 +907,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -899,8 +925,8 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" msgstr "" @@ -912,9 +938,9 @@ msgstr "" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" msgstr "" @@ -936,12 +962,12 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" msgstr "" @@ -993,7 +1019,7 @@ msgstr "" #: 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:25 +#: 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" @@ -1005,9 +1031,9 @@ msgstr "" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" msgstr "" @@ -1057,14 +1083,14 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" msgstr "" @@ -1148,7 +1174,7 @@ 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" +msgid "The allocated stock will be installed into the following build output:
      %(output)s" msgstr "" #: build/templates/build/create_build_item.html:17 @@ -1172,9 +1198,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "" @@ -1184,16 +1210,16 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 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:910 +#: templates/js/translated/build.js:933 msgid "Created" msgstr "" @@ -1201,7 +1227,7 @@ msgstr "" msgid "No target date set" msgstr "" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" msgstr "" @@ -1225,7 +1251,7 @@ msgstr "" msgid "Auto Allocate" msgstr "" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" msgstr "" @@ -1238,8 +1264,8 @@ msgid "Order required parts" msgstr "" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" msgstr "" @@ -1288,8 +1314,8 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" msgstr "" @@ -1298,48 +1324,48 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" msgstr "" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" msgstr "" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" msgstr "" -#: build/templates/build/detail.html:382 +#: build/templates/build/detail.html:383 #: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 +#: order/templates/order/purchase_order_detail.html:136 +#: order/templates/order/sales_order_detail.html:125 +#: part/templates/part/detail.html:853 stock/templates/stock/item.html:230 msgid "Confirm Delete Operation" msgstr "" -#: build/templates/build/detail.html:383 +#: build/templates/build/detail.html:384 #: order/templates/order/po_attachments.html:59 -#: order/templates/order/purchase_order_detail.html:136 -#: order/templates/order/sales_order_detail.html:125 -#: part/templates/part/detail.html:766 stock/templates/stock/item.html:229 +#: order/templates/order/purchase_order_detail.html:137 +#: order/templates/order/sales_order_detail.html:126 +#: part/templates/part/detail.html:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" msgstr "" @@ -1372,7 +1398,7 @@ msgid "Build Order Details" msgstr "" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" msgstr "" @@ -1501,9 +1527,9 @@ msgstr "" msgid "Stock item is over-allocated" msgstr "" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,546 +1582,594 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" msgstr "" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" msgstr "" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" msgstr "" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" msgstr "" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" msgstr "" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" msgstr "" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" msgstr "" -#: common/models.py:639 +#: common/models.py:625 msgid "Parts are purchaseable by default" msgstr "" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 msgid "Salable" msgstr "" -#: common/models.py:646 +#: common/models.py:632 msgid "Parts are salable by default" msgstr "" -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 msgid "Trackable" msgstr "" -#: common/models.py:653 +#: common/models.py:639 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 msgid "Virtual" msgstr "" -#: common/models.py:660 +#: common/models.py:646 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:667 +#: common/models.py:653 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:668 +#: common/models.py:654 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:674 +#: common/models.py:660 msgid "Show Import in Views" msgstr "" -#: common/models.py:675 +#: common/models.py:661 msgid "Display the import wizard in some part views" msgstr "" -#: common/models.py:681 +#: common/models.py:667 msgid "Show Price in Forms" msgstr "" -#: common/models.py:682 +#: common/models.py:668 msgid "Display part price in some forms" msgstr "" -#: common/models.py:688 +#: common/models.py:674 msgid "Show related parts" msgstr "" -#: common/models.py:689 +#: common/models.py:675 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" msgstr "" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" msgstr "" -#: common/models.py:703 +#: common/models.py:689 msgid "Enable internal prices for parts" msgstr "" -#: common/models.py:709 +#: common/models.py:695 msgid "Internal Price as BOM-Price" msgstr "" -#: common/models.py:710 +#: common/models.py:696 msgid "Use the internal price (if set) in BOM-price calculations" msgstr "" -#: common/models.py:716 templates/stats.html:25 +#: common/models.py:702 templates/stats.html:25 msgid "Debug Mode" msgstr "" -#: common/models.py:717 +#: common/models.py:703 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:723 +#: common/models.py:709 msgid "Page Size" msgstr "" -#: common/models.py:724 +#: common/models.py:710 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:734 +#: common/models.py:720 msgid "Test Reports" msgstr "" -#: common/models.py:735 +#: common/models.py:721 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:741 +#: common/models.py:727 msgid "Stock Expiry" msgstr "" -#: common/models.py:742 +#: common/models.py:728 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:748 +#: common/models.py:734 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:749 +#: common/models.py:735 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:755 +#: common/models.py:741 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" msgstr "" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" msgstr "" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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" +msgstr "" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" msgstr "" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" msgstr "" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" msgstr "" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" msgstr "" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" msgstr "" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" msgstr "" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" msgstr "" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" msgstr "" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" msgstr "" @@ -2123,7 +2197,7 @@ msgstr "" #: 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:45 +#: 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 msgid "Upload File" @@ -2154,7 +2228,7 @@ msgstr "" #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2169,244 +2243,249 @@ msgstr "" msgid "Image URL" msgstr "" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" msgstr "" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" msgstr "" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" msgstr "" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" msgstr "" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" msgstr "" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" msgstr "" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" msgstr "" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" msgstr "" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" msgstr "" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" msgstr "" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 msgid "Link" msgstr "" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" msgstr "" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" msgstr "" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" msgstr "" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" msgstr "" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" msgstr "" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" msgstr "" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" msgstr "" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" msgstr "" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" msgstr "" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" msgstr "" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" msgstr "" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" msgstr "" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" msgstr "" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" msgstr "" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" msgstr "" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" msgstr "" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" msgstr "" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" msgstr "" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: company/models.py:501 +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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" msgstr "" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" msgstr "" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" msgstr "" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" msgstr "" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" msgstr "" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" msgstr "" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" msgstr "" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" msgstr "" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" msgstr "" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" @@ -2420,7 +2499,7 @@ 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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" msgstr "" @@ -2435,7 +2514,7 @@ msgid "Download image from URL" msgstr "" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" msgstr "" @@ -2460,22 +2539,22 @@ msgstr "" msgid "Phone" msgstr "" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" msgstr "" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" msgstr "" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" msgstr "" @@ -2490,8 +2569,8 @@ msgstr "" msgid "New Supplier Part" msgstr "" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 @@ -2499,106 +2578,106 @@ msgstr "" msgid "Options" msgstr "" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" msgstr "" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" msgstr "" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" msgstr "" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" msgstr "" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" msgstr "" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" msgstr "" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 +#: company/templates/company/detail.html:124 +#: company/templates/company/navbar.html:55 +#: company/templates/company/navbar.html:58 #: 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:79 -#: part/templates/part/navbar.html:82 templates/InvenTree/index.html:291 -#: templates/InvenTree/search.html:345 +#: 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:113 -#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:46 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 #: users/models.py:46 msgid "Sales Orders" msgstr "" -#: company/templates/company/detail.html:134 +#: company/templates/company/detail.html:130 #: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" -#: company/templates/company/detail.html:135 +#: company/templates/company/detail.html:131 #: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" -#: company/templates/company/detail.html:151 -#: company/templates/company/navbar.html:55 -#: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: company/templates/company/detail.html:147 +#: company/templates/company/navbar.html:61 +#: company/templates/company/navbar.html:64 +#: templates/js/translated/build.js:620 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" msgstr "" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" msgstr "" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2609,17 +2688,17 @@ 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:109 +#: 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:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" msgstr "" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" msgstr "" @@ -2634,9 +2713,9 @@ 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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" msgstr "" @@ -2649,8 +2728,8 @@ msgstr "" #: 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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" msgstr "" @@ -2659,8 +2738,8 @@ msgstr "" #: 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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" msgstr "" @@ -2676,7 +2755,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" msgstr "" @@ -2693,18 +2772,17 @@ msgid "Manufacturer Part Stock" msgstr "" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" msgstr "" @@ -2717,41 +2795,41 @@ msgstr "" msgid "Orders" msgstr "" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" msgstr "" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" msgstr "" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" msgstr "" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" msgstr "" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" msgstr "" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" msgstr "" @@ -2775,13 +2853,13 @@ msgid "Order Part" msgstr "" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 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:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2817,8 +2895,8 @@ msgstr "" msgid "New Supplier" msgstr "" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" msgstr "" @@ -2826,8 +2904,8 @@ msgstr "" msgid "New Manufacturer" msgstr "" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" msgstr "" @@ -2929,6 +3007,10 @@ 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 msgid "Place order" msgstr "" @@ -2978,11 +3060,11 @@ msgstr "" msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" @@ -2991,7 +3073,7 @@ 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:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" msgstr "" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" msgstr "" -#: order/models.py:545 +#: order/models.py:551 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" msgstr "" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" msgstr "" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 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:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,14 +3341,12 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" msgstr "" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" msgstr "" @@ -3336,7 +3448,7 @@ msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format @@ -3369,7 +3481,7 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" +msgid "Select a supplier for %(name)s" msgstr "" #: order/templates/order/order_wizard/select_parts.html:77 @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,49 +3548,6 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" @@ -3486,18 +3555,18 @@ msgstr "" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "" @@ -3511,7 +3580,7 @@ msgid "Order Code" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3814,12 +3914,28 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "" + +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 msgid "Default Location" msgstr "" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" msgstr "" @@ -3879,7 +3995,7 @@ msgstr "" msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3923,391 +4039,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" msgstr "" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" msgstr "" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" msgstr "" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" msgstr "" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" msgstr "" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" msgstr "" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" msgstr "" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" msgstr "" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" msgstr "" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" msgstr "" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" msgstr "" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" msgstr "" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" msgstr "" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" msgstr "" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" msgstr "" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4374,33 +4490,34 @@ msgstr "" msgid "Select Part" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" +#: 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:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" msgstr "" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4435,7 +4552,7 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" @@ -4449,7 +4566,7 @@ msgstr "" msgid "Export Part Data" msgstr "" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" msgstr "" @@ -4470,26 +4587,30 @@ 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:145 +#: part/templates/part/category.html:146 msgid "View list display" msgstr "" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" msgstr "" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" msgstr "" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" msgstr "" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" msgstr "" @@ -4533,7 +4654,7 @@ msgstr "" msgid "Import Parts" msgstr "" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" msgstr "" @@ -4554,7 +4675,7 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 @@ -4563,10 +4684,10 @@ msgstr "" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4586,7 +4707,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4602,8 +4723,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4644,50 +4765,42 @@ msgstr "" msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4701,19 +4814,19 @@ msgstr "" msgid "Import Parts from File" msgstr "" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" @@ -4721,195 +4834,204 @@ msgstr "" msgid "Part List" msgstr "" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" msgstr "" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" msgstr "" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: 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:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" msgstr "" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" msgstr "" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" msgstr "" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:283 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" msgstr "" -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" - #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 msgid "Note: BOM pricing is incomplete for this part" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." msgstr "" @@ -4917,32 +5039,39 @@ msgstr "" msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 #, 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" +msgid "Are you sure you want to delete part '%(full_name)s'?" msgstr "" #: part/templates/part/partial_delete.html:22 #, python-format +msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated" +msgstr "" + +#: part/templates/part/partial_delete.html:32 +#, python-format msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:" msgstr "" -#: part/templates/part/partial_delete.html: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 "" @@ -4963,53 +5092,53 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" @@ -5017,8 +5146,8 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5116,51 +5245,51 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" msgstr "" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" msgstr "" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" msgstr "" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" msgstr "" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5768,7 +5905,7 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" msgstr "" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5916,7 +6053,7 @@ msgstr "" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" msgstr "" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6059,7 +6196,7 @@ msgstr "" msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6171,14 +6308,6 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" msgstr "" @@ -6240,7 +6369,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" msgstr "" @@ -6257,7 +6386,7 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" msgstr "" @@ -6332,16 +6461,16 @@ msgid "No category parameter templates found" msgstr "" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" msgstr "" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" msgstr "" @@ -6358,6 +6487,7 @@ msgid "Account Settings" msgstr "" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: 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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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:117 +#: 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:152 +#: 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:153 +#: 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:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 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:206 +#: 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:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 +#: templates/js/translated/barcode.js:32 msgid "Enter barcode data" msgstr "" -#: templates/js/translated/barcode.js:14 +#: templates/js/translated/barcode.js:36 msgid "Barcode" msgstr "" -#: templates/js/translated/barcode.js:32 +#: templates/js/translated/barcode.js:54 msgid "Enter optional notes for stock transfer" msgstr "" -#: templates/js/translated/barcode.js:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" msgstr "" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" msgstr "" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" msgstr "" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" msgstr "" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" msgstr "" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" msgstr "" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" msgstr "" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" msgstr "" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" msgstr "" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" msgstr "" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" msgstr "" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" msgstr "" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" msgstr "" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" msgstr "" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" msgstr "" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" msgstr "" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" msgstr "" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" msgstr "" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" msgstr "" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" msgstr "" -#: templates/js/translated/label.js:61 +#: templates/js/translated/label.js:80 msgid "Select Stock Locations" msgstr "" -#: templates/js/translated/label.js:62 +#: templates/js/translated/label.js:81 msgid "Stock location(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:80 +#: templates/js/translated/label.js:99 msgid "No labels found which match selected stock location(s)" msgstr "" -#: templates/js/translated/label.js:116 +#: templates/js/translated/label.js:135 msgid "Part(s) must be selected before printing labels" msgstr "" -#: templates/js/translated/label.js:135 +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" msgstr "" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" msgstr "" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" msgstr "" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" msgstr "" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" msgstr "" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" msgstr "" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" msgstr "" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" msgstr "" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" msgstr "" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" - -#: templates/js/translated/part.js:53 +#: templates/js/translated/part.js:49 msgid "Part Attributes" msgstr "" -#: templates/js/translated/part.js:96 +#: templates/js/translated/part.js:53 msgid "Part Creation Options" msgstr "" -#: templates/js/translated/part.js:102 -msgid "Initial Stock Quantity" -msgstr "" - -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" -msgstr "" - -#: templates/js/translated/part.js:109 -msgid "Copy Category Parameters" -msgstr "" - -#: templates/js/translated/part.js:110 -msgid "Copy parameter templates from selected part category" -msgstr "" - -#: templates/js/translated/part.js:120 +#: templates/js/translated/part.js:57 msgid "Part Duplication Options" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:61 +msgid "Supplier Options" +msgstr "" + +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 +msgid "Initial Stock Quantity" +msgstr "" + +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" +msgstr "" + +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 +msgid "Copy Category Parameters" +msgstr "" + +#: templates/js/translated/part.js:192 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" +msgstr "" + +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" msgstr "" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" msgstr "" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" msgstr "" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" +msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" msgstr "" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" msgstr "" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" msgstr "" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" msgstr "" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po index 0bd8a11455..214c33033a 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-08-07 15:14+0000\n" -"PO-Revision-Date: 2021-08-07 15:30\n" +"POT-Creation-Date: 2021-09-30 22:48+0000\n" +"PO-Revision-Date: 2021-09-30 22:51\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -36,7 +36,7 @@ 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:545 +#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564 msgid "Confirm" msgstr "确认" @@ -46,7 +46,7 @@ msgstr "确认删除" #: InvenTree/forms.py:128 msgid "Confirm item deletion" -msgstr "" +msgstr "确认删除" #: InvenTree/forms.py:160 templates/registration/login.html:76 msgid "Enter password" @@ -71,27 +71,27 @@ msgstr "选择分类" #: InvenTree/helpers.py:401 #, python-brace-format msgid "Duplicate serial: {n}" -msgstr "" +msgstr "重复的序列号: {n}" -#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:425 +#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430 #: stock/views.py:1363 msgid "Invalid quantity provided" -msgstr "" +msgstr "提供的数量无效" #: InvenTree/helpers.py:411 msgid "Empty serial number string" -msgstr "" +msgstr "空序列号字符串" #: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439 #: InvenTree/helpers.py:464 #, python-brace-format msgid "Invalid group: {g}" -msgstr "" +msgstr "无效的群组: {g}" #: InvenTree/helpers.py:469 #, python-brace-format msgid "Duplicate serial: {g}" -msgstr "" +msgstr "重复的序列号: {g}" #: InvenTree/helpers.py:477 msgid "No serial numbers found" @@ -100,441 +100,466 @@ msgstr "未找到序列号" #: InvenTree/helpers.py:481 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" -msgstr "" +msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})" -#: InvenTree/models.py:61 stock/models.py:1815 +#: InvenTree/models.py:66 stock/models.py:1823 msgid "Attachment" msgstr "附件" -#: InvenTree/models.py:62 +#: InvenTree/models.py:67 msgid "Select file to attach" msgstr "选择附件" -#: InvenTree/models.py:64 templates/js/translated/attachment.js:52 +#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 msgid "Comment" msgstr "注释" -#: InvenTree/models.py:64 +#: InvenTree/models.py:69 msgid "File comment" msgstr "文件注释" -#: InvenTree/models.py:70 InvenTree/models.py:71 common/models.py:969 -#: common/models.py:970 part/models.py:2035 +#: 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:1549 +#: templates/js/translated/stock.js:1690 msgid "User" msgstr "用户" -#: InvenTree/models.py:74 +#: InvenTree/models.py:79 msgid "upload date" msgstr "上传日期" -#: InvenTree/models.py:113 -msgid "Invalid choice" -msgstr "" +#: InvenTree/models.py:99 +msgid "Filename must not be empty" +msgstr "文件名不能为空!" -#: InvenTree/models.py:129 InvenTree/models.py:130 company/models.py:412 -#: label/models.py:112 part/models.py:656 part/models.py:2196 -#: part/templates/part/part_base.html:233 report/models.py:181 -#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289 -#: templates/js/translated/company.js:583 templates/js/translated/part.js:338 -#: templates/js/translated/part.js:471 templates/js/translated/part.js:963 -#: templates/js/translated/stock.js:1342 +#: InvenTree/models.py:122 +msgid "Invalid attachment directory" +msgstr "非法的附件目录" + +#: InvenTree/models.py:132 +#, python-brace-format +msgid "Filename contains illegal character '{c}'" +msgstr "文件名包含非法字符 '{c}'" + +#: InvenTree/models.py:135 +msgid "Filename missing extension" +msgstr "缺少文件名扩展" + +#: InvenTree/models.py:142 +msgid "Attachment with this filename already exists" +msgstr "使用此文件名的附件已存在" + +#: InvenTree/models.py:149 +msgid "Error renaming file" +msgstr "重命名文件出错" + +#: InvenTree/models.py:184 +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/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:1483 msgid "Name" msgstr "名称" -#: InvenTree/models.py:136 build/models.py:187 -#: build/templates/build/detail.html:24 company/models.py:351 -#: company/models.py:519 company/templates/company/manufacturer_part.html:76 +#: 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 order/templates/order/purchase_order_detail.html:312 -#: part/models.py:679 part/templates/part/part_base.html:238 +#: order/models.py:158 part/models.py:681 +#: part/templates/part/part_base.html:246 #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:551 report/models.py:590 #: report/templates/report/inventree_build_order_base.html:118 -#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224 -#: templates/InvenTree/search.html:296 #: templates/InvenTree/settings/header.html:9 -#: templates/js/translated/bom.js:210 templates/js/translated/build.js:868 -#: templates/js/translated/build.js:1162 templates/js/translated/company.js:299 -#: templates/js/translated/company.js:497 -#: templates/js/translated/company.js:779 templates/js/translated/order.js:267 -#: templates/js/translated/order.js:369 templates/js/translated/part.js:397 -#: templates/js/translated/part.js:581 templates/js/translated/part.js:758 -#: templates/js/translated/part.js:975 templates/js/translated/part.js:1043 -#: templates/js/translated/stock.js:926 templates/js/translated/stock.js:1354 -#: templates/js/translated/stock.js:1399 +#: 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:547 +#: templates/js/translated/company.js:836 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:486 templates/js/translated/order.js:710 +#: 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:840 +#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540 msgid "Description" -msgstr "" +msgstr "描述信息" -#: InvenTree/models.py:137 +#: InvenTree/models.py:208 msgid "Description (optional)" -msgstr "" +msgstr "描述 (可选)" -#: InvenTree/models.py:145 +#: InvenTree/models.py:216 msgid "parent" -msgstr "" +msgstr "上级项" -#: InvenTree/serializers.py:52 part/models.py:2438 +#: InvenTree/serializers.py:55 part/models.py:2454 msgid "Must be a valid number" -msgstr "" +msgstr "必须是有效数字" -#: InvenTree/settings.py:518 -msgid "German" -msgstr "" - -#: InvenTree/settings.py:519 -msgid "Greek" -msgstr "" - -#: InvenTree/settings.py:520 -msgid "English" -msgstr "" - -#: InvenTree/settings.py:521 -msgid "Spanish" -msgstr "" - -#: InvenTree/settings.py:522 -msgid "French" -msgstr "" +#: InvenTree/serializers.py:244 +msgid "Filename" +msgstr "文件名" #: InvenTree/settings.py:523 -msgid "Hebrew" -msgstr "" +msgid "German" +msgstr "德语" #: InvenTree/settings.py:524 -msgid "Italian" -msgstr "" +msgid "Greek" +msgstr "希腊语" #: InvenTree/settings.py:525 -msgid "Japanese" -msgstr "" +msgid "English" +msgstr "英语" #: InvenTree/settings.py:526 -msgid "Korean" -msgstr "" +msgid "Spanish" +msgstr "西班牙语" #: InvenTree/settings.py:527 -msgid "Dutch" -msgstr "" +msgid "French" +msgstr "法语" #: InvenTree/settings.py:528 -msgid "Norwegian" -msgstr "" +msgid "Hebrew" +msgstr "希伯来语" #: InvenTree/settings.py:529 -msgid "Polish" -msgstr "" +msgid "Italian" +msgstr "意大利语" #: InvenTree/settings.py:530 -msgid "Russian" -msgstr "" +msgid "Japanese" +msgstr "日语" #: InvenTree/settings.py:531 -msgid "Swedish" -msgstr "" +msgid "Korean" +msgstr "韩语" #: InvenTree/settings.py:532 -msgid "Thai" -msgstr "" +msgid "Dutch" +msgstr "荷兰语" #: InvenTree/settings.py:533 -msgid "Turkish" -msgstr "" +msgid "Norwegian" +msgstr "挪威语" #: InvenTree/settings.py:534 -msgid "Vietnamese" -msgstr "" +msgid "Polish" +msgstr "波兰语" #: InvenTree/settings.py:535 +msgid "Russian" +msgstr "俄语" + +#: InvenTree/settings.py:536 +msgid "Swedish" +msgstr "瑞典语" + +#: InvenTree/settings.py:537 +msgid "Thai" +msgstr "泰语" + +#: InvenTree/settings.py:538 +msgid "Turkish" +msgstr "土耳其语" + +#: InvenTree/settings.py:539 +msgid "Vietnamese" +msgstr "越南语" + +#: InvenTree/settings.py:540 msgid "Chinese" -msgstr "" +msgstr "中文(简体)" #: InvenTree/status.py:94 msgid "Background worker check failed" -msgstr "" +msgstr "后台工作人员检查失败" #: InvenTree/status.py:98 msgid "Email backend not configured" -msgstr "" +msgstr "未配置电子邮件后端" #: InvenTree/status.py:101 msgid "InvenTree system health checks failed" -msgstr "" +msgstr "InventTree系统健康检查失败" #: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145 #: InvenTree/status_codes.py:314 msgid "Pending" -msgstr "" +msgstr "待定" #: InvenTree/status_codes.py:105 msgid "Placed" -msgstr "" +msgstr "已添加" #: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317 msgid "Complete" -msgstr "" +msgstr "完成" #: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147 #: InvenTree/status_codes.py:316 msgid "Cancelled" -msgstr "" +msgstr "已取消" #: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148 #: InvenTree/status_codes.py:190 msgid "Lost" -msgstr "" +msgstr "丢失" #: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149 #: InvenTree/status_codes.py:192 msgid "Returned" -msgstr "" +msgstr "已退回" #: InvenTree/status_codes.py:146 #: order/templates/order/sales_order_base.html:126 msgid "Shipped" -msgstr "" +msgstr "已发货" #: InvenTree/status_codes.py:186 msgid "OK" -msgstr "" +msgstr "OK" #: InvenTree/status_codes.py:187 msgid "Attention needed" -msgstr "" +msgstr "需要关注" #: InvenTree/status_codes.py:188 msgid "Damaged" -msgstr "" +msgstr "破损" #: InvenTree/status_codes.py:189 msgid "Destroyed" -msgstr "" +msgstr "已销毁" #: InvenTree/status_codes.py:191 msgid "Rejected" -msgstr "" +msgstr "Rejected" #: InvenTree/status_codes.py:272 msgid "Legacy stock tracking entry" -msgstr "" +msgstr "旧库存跟踪条目" #: InvenTree/status_codes.py:274 msgid "Stock item created" -msgstr "" +msgstr "库存项已创建" #: InvenTree/status_codes.py:276 msgid "Edited stock item" -msgstr "" +msgstr "已编辑库存项" #: InvenTree/status_codes.py:277 msgid "Assigned serial number" -msgstr "" +msgstr "已分配序列号" #: InvenTree/status_codes.py:279 msgid "Stock counted" -msgstr "" +msgstr "库存计数" #: InvenTree/status_codes.py:280 msgid "Stock manually added" -msgstr "" +msgstr "已手动添加库存" #: InvenTree/status_codes.py:281 msgid "Stock manually removed" -msgstr "" +msgstr "库存手动删除" #: InvenTree/status_codes.py:283 msgid "Location changed" -msgstr "" +msgstr "仓储地点已更改" #: InvenTree/status_codes.py:285 msgid "Installed into assembly" -msgstr "" +msgstr "安装到组装中" #: InvenTree/status_codes.py:286 msgid "Removed from assembly" -msgstr "" +msgstr "已从组装中删除" #: InvenTree/status_codes.py:288 msgid "Installed component item" -msgstr "" +msgstr "已安装组件项" #: InvenTree/status_codes.py:289 msgid "Removed component item" -msgstr "" +msgstr "已删除组件项" #: InvenTree/status_codes.py:291 msgid "Split from parent item" -msgstr "" +msgstr "从父项拆分" #: InvenTree/status_codes.py:292 msgid "Split child item" -msgstr "" +msgstr "拆分子项" -#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:173 +#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186 msgid "Sent to customer" -msgstr "" +msgstr "发送给客户" #: InvenTree/status_codes.py:295 msgid "Returned from customer" -msgstr "" +msgstr "从客户退货" #: InvenTree/status_codes.py:297 msgid "Build order output created" -msgstr "" +msgstr "已创建生产订单输出" #: InvenTree/status_codes.py:298 msgid "Build order output completed" -msgstr "" +msgstr "生产订单输出已完成" #: InvenTree/status_codes.py:300 msgid "Received against purchase order" -msgstr "" +msgstr "收到定购单" #: InvenTree/status_codes.py:315 msgid "Production" -msgstr "" +msgstr "生产中" #: InvenTree/validators.py:22 msgid "Not a valid currency code" -msgstr "" +msgstr "不是有效的货币代码" #: InvenTree/validators.py:50 msgid "Invalid character in part name" -msgstr "" +msgstr "商品名称中存在无效字符" #: InvenTree/validators.py:63 #, python-brace-format msgid "IPN must match regex pattern {pat}" -msgstr "" +msgstr "IPN 必须匹配正则表达式 {pat}" #: InvenTree/validators.py:77 InvenTree/validators.py:91 #: InvenTree/validators.py:105 #, python-brace-format msgid "Reference must match pattern {pattern}" -msgstr "" +msgstr "引用必须匹配模板 {pattern}" #: InvenTree/validators.py:113 #, python-brace-format msgid "Illegal character in name ({x})" -msgstr "" +msgstr "名称中存在非法字符 ({x})" #: InvenTree/validators.py:132 InvenTree/validators.py:148 msgid "Overage value must not be negative" -msgstr "" +msgstr "备损值不能为负数" #: InvenTree/validators.py:150 msgid "Overage must not exceed 100%" -msgstr "" +msgstr "备损不能超过 100%" #: InvenTree/validators.py:157 msgid "Overage must be an integer value or a percentage" -msgstr "" +msgstr "备损必须是整数值或百分比" -#: InvenTree/views.py:612 +#: InvenTree/views.py:610 msgid "Delete Item" -msgstr "" +msgstr "删除项" -#: InvenTree/views.py:661 +#: InvenTree/views.py:659 msgid "Check box to confirm item deletion" -msgstr "" +msgstr "选中方框以确认项目删除" -#: InvenTree/views.py:676 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 msgid "Edit User Information" -msgstr "" +msgstr "编辑用户信息" -#: InvenTree/views.py:687 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 msgid "Set Password" -msgstr "" +msgstr "设置密码" -#: InvenTree/views.py:706 +#: InvenTree/views.py:704 msgid "Password fields must match" -msgstr "" +msgstr "密码字段必须相匹配。" -#: InvenTree/views.py:907 templates/navbar.html:95 +#: InvenTree/views.py:910 templates/navbar.html:97 msgid "System Information" -msgstr "" +msgstr "系统信息" #: barcodes/api.py:53 barcodes/api.py:150 msgid "Must provide barcode_data parameter" -msgstr "" +msgstr "必须提供条码数据参数" #: barcodes/api.py:126 msgid "No match found for barcode data" -msgstr "" +msgstr "未找到匹配条形码数据" #: barcodes/api.py:128 msgid "Match found for barcode data" -msgstr "" +msgstr "找到匹配条形码数据" #: barcodes/api.py:153 msgid "Must provide stockitem parameter" -msgstr "" +msgstr "必须提供库存项参数" #: barcodes/api.py:160 msgid "No matching stock item found" -msgstr "" +msgstr "未找到匹配的库存项" #: barcodes/api.py:190 msgid "Barcode already matches StockItem object" -msgstr "" +msgstr "条形码已经匹配库存项" #: barcodes/api.py:194 msgid "Barcode already matches StockLocation object" -msgstr "" +msgstr "条形码已经匹配仓储地对象" #: barcodes/api.py:198 msgid "Barcode already matches Part object" -msgstr "" +msgstr "条形码已经匹配商品对象" #: barcodes/api.py:204 barcodes/api.py:216 msgid "Barcode hash already matches StockItem object" -msgstr "" +msgstr "条码哈希值已经匹配库存项目" #: barcodes/api.py:222 msgid "Barcode associated with StockItem" -msgstr "" +msgstr "与库存项关联的条形码" #: build/forms.py:37 msgid "Build Order reference" -msgstr "" +msgstr "相关生产订单" #: build/forms.py:38 msgid "Order target date" -msgstr "" +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:945 templates/js/translated/order.js:284 -#: templates/js/translated/order.js:387 +#: templates/js/translated/build.js:962 templates/js/translated/order.js:358 +#: templates/js/translated/order.js:728 msgid "Target Date" -msgstr "" +msgstr "预计日期" #: build/forms.py:43 build/models.py:277 msgid "Target date for build completion. Build will be overdue after this date." -msgstr "" +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:1001 +#: 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:706 -#: order/models.py:952 order/templates/order/order_wizard/match_parts.html:30 +#: 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/purchase_order_detail.html:348 -#: order/templates/order/sales_order_detail.html:200 -#: order/templates/order/sales_order_detail.html:207 -#: order/templates/order/sales_order_detail.html:292 -#: order/templates/order/sales_order_detail.html:364 part/forms.py:249 -#: part/forms.py:265 part/forms.py:281 part/models.py:2340 +#: 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 #: part/templates/part/bom_upload/match_parts.html:31 -#: part/templates/part/detail.html:940 part/templates/part/detail.html:1026 +#: part/templates/part/detail.html:943 part/templates/part/detail.html:1029 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -542,199 +567,201 @@ msgstr "" #: 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:364 templates/js/translated/bom.js:225 -#: templates/js/translated/build.js:271 templates/js/translated/build.js:606 -#: templates/js/translated/build.js:1172 -#: templates/js/translated/model_renderers.js:56 -#: templates/js/translated/order.js:482 templates/js/translated/part.js:1148 -#: templates/js/translated/part.js:1270 templates/js/translated/part.js:1326 -#: templates/js/translated/stock.js:1534 templates/js/translated/stock.js:1732 +#: 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:1364 templates/js/translated/part.js:1487 +#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1675 +#: templates/js/translated/stock.js:1850 msgid "Quantity" -msgstr "" +msgstr "数量" #: build/forms.py:49 msgid "Number of items to build" -msgstr "" +msgstr "要生产的项目数量" #: build/forms.py:91 msgid "Enter quantity for build output" -msgstr "" +msgstr "输入生产产出数量" #: build/forms.py:95 order/forms.py:114 stock/forms.py:83 msgid "Serial Numbers" -msgstr "" +msgstr "序列号" #: build/forms.py:97 msgid "Enter serial numbers for build outputs" -msgstr "" +msgstr "输入生产产出的序列号" #: build/forms.py:103 msgid "Confirm creation of build output" -msgstr "" +msgstr "确认创建生产产出" #: build/forms.py:124 msgid "Confirm deletion of build output" -msgstr "" +msgstr "确认删除生产产出" #: build/forms.py:145 msgid "Confirm unallocation of stock" -msgstr "" +msgstr "确认取消分配库存" #: build/forms.py:169 msgid "Confirm stock allocation" -msgstr "" +msgstr "确认库存分配" #: build/forms.py:186 msgid "Mark build as complete" -msgstr "" +msgstr "标记生产已完成" #: build/forms.py:210 build/templates/build/auto_allocate.html:18 -#: stock/forms.py:280 stock/templates/stock/item_base.html:299 +#: 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:363 -#: templates/js/translated/barcode.js:531 templates/js/translated/build.js:256 -#: templates/js/translated/build.js:620 templates/js/translated/order.js:467 -#: templates/js/translated/stock.js:134 templates/js/translated/stock.js:260 -#: templates/js/translated/stock.js:1012 templates/js/translated/stock.js:1426 +#: 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:179 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 "" +msgstr "地点" #: build/forms.py:211 msgid "Location of completed parts" -msgstr "" +msgstr "已完成商品所在仓储地点" #: build/forms.py:215 build/templates/build/build_base.html:138 -#: build/templates/build/detail.html:62 order/models.py:549 -#: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252 -#: templates/js/translated/barcode.js:119 templates/js/translated/build.js:902 -#: templates/js/translated/order.js:271 templates/js/translated/order.js:374 -#: templates/js/translated/stock.js:999 templates/js/translated/stock.js:1503 -#: templates/js/translated/stock.js:1748 +#: 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/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 "" +msgstr "状态" #: build/forms.py:216 msgid "Build output stock status" -msgstr "" +msgstr "生产产出库存状态" #: build/forms.py:223 msgid "Confirm incomplete" -msgstr "" +msgstr "确认未完成" #: build/forms.py:224 msgid "Confirm completion with incomplete stock allocation" -msgstr "" +msgstr "确认以未完成库存分配方式完成" #: build/forms.py:227 msgid "Confirm build completion" -msgstr "" +msgstr "确认生产完成" #: build/forms.py:252 msgid "Confirm cancel" -msgstr "" +msgstr "确认取消" #: build/forms.py:252 build/views.py:65 msgid "Confirm build cancellation" -msgstr "" +msgstr "确认生产取消" #: build/forms.py:266 msgid "Select quantity of stock to allocate" -msgstr "" +msgstr "选择要分配的库存数量" #: build/models.py:113 msgid "Invalid choice for parent build" -msgstr "" +msgstr "上级生产选项无效" #: build/models.py:117 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:73 #: report/templates/report/inventree_build_order_base.html:106 -#: templates/js/translated/build.js:233 +#: templates/js/translated/build.js:260 msgid "Build Order" -msgstr "" +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:42 -#: part/templates/part/navbar.html:45 templates/InvenTree/index.html:229 -#: templates/InvenTree/search.html:185 +#: 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:101 #: templates/InvenTree/settings/navbar.html:103 users/models.py:44 msgid "Build Orders" -msgstr "" +msgstr "生产订单" #: build/models.py:178 msgid "Build Order Reference" -msgstr "" +msgstr "相关生产订单" -#: build/models.py:179 order/models.py:246 order/models.py:533 -#: order/models.py:713 order/templates/order/purchase_order_detail.html:343 -#: order/templates/order/sales_order_detail.html:359 part/models.py:2349 -#: part/templates/part/bom_upload/match_parts.html:30 +#: 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 #: report/templates/report/inventree_po_report.html:92 #: report/templates/report/inventree_so_report.html:92 -#: templates/js/translated/bom.js:217 templates/js/translated/build.js:695 -#: templates/js/translated/build.js:1166 +#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718 +#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517 msgid "Reference" -msgstr "" +msgstr "引用" #: build/models.py:190 msgid "Brief description of the build" -msgstr "" +msgstr "生产的简短描述." #: build/models.py:199 build/templates/build/build_base.html:163 #: build/templates/build/detail.html:80 msgid "Parent Build" -msgstr "" +msgstr "上级生产" #: build/models.py:200 msgid "BuildOrder to which this build is allocated" -msgstr "" +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:654 -#: order/models.py:766 order/models.py:825 +#: 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/purchase_order_detail.html:297 #: order/templates/order/receive_parts.html:19 -#: order/templates/order/sales_order_detail.html:344 part/models.py:295 -#: part/models.py:1980 part/models.py:1996 part/models.py:2015 -#: part/models.py:2033 part/models.py:2112 part/models.py:2234 -#: part/models.py:2324 part/templates/part/detail.html:199 +#: 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 #: 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:362 templates/js/translated/bom.js:183 -#: templates/js/translated/build.js:586 templates/js/translated/build.js:873 -#: templates/js/translated/build.js:1139 templates/js/translated/company.js:438 -#: templates/js/translated/company.js:688 templates/js/translated/part.js:562 -#: templates/js/translated/part.js:725 templates/js/translated/stock.js:132 -#: templates/js/translated/stock.js:895 templates/js/translated/stock.js:1720 +#: templates/InvenTree/search.html:112 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:488 +#: templates/js/translated/company.js:745 templates/js/translated/order.js:471 +#: templates/js/translated/part.js:705 templates/js/translated/part.js:875 +#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797 +#: templates/js/translated/stock.js:1838 msgid "Part" -msgstr "" +msgstr "商品" #: build/models.py:213 msgid "Select part to build" -msgstr "" +msgstr "选择要生产的商品" #: build/models.py:218 msgid "Sales Order Reference" -msgstr "" +msgstr "相关销售订单" #: build/models.py:222 msgid "SalesOrder to which this build is allocated" -msgstr "" +msgstr "此次生产匹配的销售订单" #: build/models.py:227 msgid "Source Location" -msgstr "" +msgstr "来源地点" #: build/models.py:231 msgid "Select location to take stock from for this build (leave blank to take from any stock location)" @@ -742,131 +769,130 @@ msgstr "" #: build/models.py:236 msgid "Destination Location" -msgstr "" +msgstr "目标地点" #: build/models.py:240 msgid "Select location where the completed items will be stored" -msgstr "" +msgstr "选择已完成项目仓储地点" #: build/models.py:244 msgid "Build Quantity" -msgstr "" +msgstr "生产数量" #: build/models.py:247 msgid "Number of stock items to build" -msgstr "" +msgstr "要生产的项目数量" #: build/models.py:251 msgid "Completed items" -msgstr "" +msgstr "已完成项目" #: build/models.py:253 msgid "Number of stock items which have been completed" -msgstr "" +msgstr "已完成的库存项目数量" -#: build/models.py:257 part/templates/part/part_base.html:191 +#: build/models.py:257 part/templates/part/part_base.html:198 msgid "Build Status" -msgstr "" +msgstr "生产状态" #: build/models.py:261 msgid "Build status code" -msgstr "" +msgstr "生产状态代码" -#: build/models.py:265 stock/models.py:507 +#: build/models.py:265 stock/models.py:513 msgid "Batch Code" -msgstr "" +msgstr "批量代码" #: build/models.py:269 msgid "Batch code for this build output" -msgstr "" +msgstr "此生产产出的批量代码" -#: build/models.py:272 order/models.py:162 part/models.py:851 -#: part/templates/part/part_base.html:264 templates/js/translated/order.js:382 +#: 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 msgid "Creation Date" -msgstr "" +msgstr "创建日期" -#: build/models.py:276 order/models.py:555 +#: build/models.py:276 order/models.py:561 msgid "Target completion date" -msgstr "" +msgstr "预计完成日期" -#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:950 +#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967 msgid "Completion Date" -msgstr "" +msgstr "完成日期:" #: build/models.py:286 msgid "completed by" -msgstr "" +msgstr "完成人" -#: build/models.py:294 templates/js/translated/build.js:915 +#: build/models.py:294 templates/js/translated/build.js:938 msgid "Issued by" -msgstr "" +msgstr "发布者" #: build/models.py:295 msgid "User who issued this build order" -msgstr "" +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:855 +#: order/templates/order/sales_order_base.html:140 part/models.py:857 #: report/templates/report/inventree_build_order_base.html:159 -#: templates/js/translated/build.js:930 +#: templates/js/translated/build.js:950 msgid "Responsible" -msgstr "" +msgstr "责任人" #: build/models.py:304 msgid "User responsible for this build order" -msgstr "" +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:258 stock/models.py:501 +#: part/templates/part/part_base.html:266 stock/models.py:507 #: stock/templates/stock/item_base.html:359 msgid "External Link" -msgstr "" +msgstr "外部链接" -#: build/models.py:310 part/models.py:713 stock/models.py:503 +#: build/models.py:310 part/models.py:715 stock/models.py:509 msgid "Link to external URL" -msgstr "" +msgstr "链接到外部 URL" #: build/models.py:314 build/templates/build/navbar.html:52 -#: company/models.py:139 company/models.py:526 -#: company/templates/company/navbar.html:63 -#: company/templates/company/navbar.html:66 order/models.py:180 -#: order/models.py:715 order/templates/order/po_navbar.html:38 +#: 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/purchase_order_detail.html:419 -#: order/templates/order/sales_order_detail.html:439 +#: 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:840 -#: part/templates/part/detail.html:105 part/templates/part/navbar.html:108 -#: part/templates/part/navbar.html:111 +#: 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 #: report/templates/report/inventree_build_order_base.html:173 -#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:573 -#: stock/models.py:1715 stock/models.py:1821 -#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:37 -#: templates/js/translated/bom.js:369 templates/js/translated/company.js:784 -#: templates/js/translated/stock.js:268 templates/js/translated/stock.js:509 -#: templates/js/translated/stock.js:1090 +#: 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/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59 +#: templates/js/translated/bom.js:385 templates/js/translated/company.js:841 +#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061 msgid "Notes" -msgstr "" +msgstr "备注" #: build/models.py:315 msgid "Extra build notes" -msgstr "" +msgstr "额外的生产备注" #: build/models.py:792 msgid "No build output specified" -msgstr "" +msgstr "未指定生产产出" #: build/models.py:795 msgid "Build output is already completed" -msgstr "" +msgstr "生产产出已完成" #: build/models.py:798 msgid "Build output does not match Build Order" -msgstr "" +msgstr "生产产出与订单不匹配" #: build/models.py:1208 msgid "BuildItem must be unique for build, stock_item and install_into" @@ -879,15 +905,15 @@ msgstr "" #: build/models.py:1237 #, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" -msgstr "" +msgstr "分配数量 ({n}) 不能超过可用数量 ({q})" -#: build/models.py:1244 order/models.py:926 +#: build/models.py:1244 order/models.py:938 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1248 order/models.py:929 +#: build/models.py:1248 order/models.py:941 msgid "Allocation quantity must be greater than zero" -msgstr "" +msgstr "分配数量必须大于0" #: build/models.py:1252 msgid "Quantity must be 1 for serialized stock" @@ -899,10 +925,10 @@ msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" #: build/models.py:1372 stock/templates/stock/item_base.html:331 -#: templates/InvenTree/search.html:183 templates/js/translated/build.js:846 -#: templates/navbar.html:29 +#: templates/InvenTree/search.html:169 templates/js/translated/build.js:869 +#: templates/navbar.html:35 msgid "Build" -msgstr "" +msgstr "生产" #: build/models.py:1373 msgid "Build to allocate parts" @@ -912,15 +938,15 @@ msgstr "" #: 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:244 templates/js/translated/build.js:249 -#: templates/js/translated/build.js:993 templates/js/translated/order.js:455 -#: templates/js/translated/order.js:460 templates/js/translated/stock.js:1485 +#: 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 msgid "Stock Item" -msgstr "" +msgstr "库存项" #: build/models.py:1390 msgid "Source stock item" -msgstr "" +msgstr "源库存项" #: build/models.py:1403 msgid "Stock quantity to allocate to build" @@ -928,7 +954,7 @@ msgstr "" #: build/models.py:1411 msgid "Install into" -msgstr "" +msgstr "安装到" #: build/models.py:1412 msgid "Destination stock item" @@ -936,18 +962,18 @@ msgstr "" #: build/templates/build/allocation_card.html:21 #: build/templates/build/complete_output.html:46 -#: order/templates/order/sales_order_detail.html:205 -#: order/templates/order/sales_order_detail.html:290 +#: 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:495 stock/templates/stock/item_base.html:251 -#: templates/js/translated/build.js:604 -#: templates/js/translated/model_renderers.js:54 +#: 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" -msgstr "" +msgstr "序列号" #: build/templates/build/auto_allocate.html:9 msgid "Automatically Allocate Stock" -msgstr "" +msgstr "自动分配库存" #: build/templates/build/auto_allocate.html:10 msgid "The following stock items will be allocated to the specified build output" @@ -959,7 +985,7 @@ msgstr "" #: build/templates/build/auto_allocate.html:39 msgid "Stock items will have to be manually allocated" -msgstr "" +msgstr "必须手动分配库存项目" #: build/templates/build/build_base.html:18 #, python-format @@ -981,7 +1007,7 @@ msgstr "" #: build/templates/build/build_base.html:42 msgid "Required build quantity has not yet been completed" -msgstr "" +msgstr "所需生产数量尚未完成" #: build/templates/build/build_base.html:47 msgid "Stock has not been fully allocated to this Build Order" @@ -993,11 +1019,11 @@ msgstr "" #: 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:25 +#: 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 "" +msgstr "管理界面" #: build/templates/build/build_base.html:81 #: build/templates/build/build_base.html:150 @@ -1005,78 +1031,78 @@ msgstr "" #: 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:259 -#: templates/js/translated/table_filters.js:278 -#: templates/js/translated/table_filters.js:295 +#: templates/js/translated/table_filters.js:272 +#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:308 msgid "Overdue" -msgstr "" +msgstr "逾期" #: build/templates/build/build_base.html:90 msgid "Print actions" -msgstr "" +msgstr "打印操作" #: build/templates/build/build_base.html:94 msgid "Print Build Order" -msgstr "" +msgstr "打印生产订单" #: build/templates/build/build_base.html:100 #: build/templates/build/build_base.html:222 msgid "Complete Build" -msgstr "" +msgstr "生产完成" #: build/templates/build/build_base.html:105 msgid "Build actions" -msgstr "" +msgstr "生产操作" #: build/templates/build/build_base.html:109 msgid "Edit Build" -msgstr "" +msgstr "编辑生产" #: build/templates/build/build_base.html:111 #: build/templates/build/build_base.html:206 build/views.py:56 msgid "Cancel Build" -msgstr "" +msgstr "取消生产" #: build/templates/build/build_base.html:114 msgid "Delete Build" -msgstr "" +msgstr "删除生产" #: build/templates/build/build_base.html:124 #: build/templates/build/detail.html:15 msgid "Build Details" -msgstr "" +msgstr "生产详情" #: build/templates/build/build_base.html:150 #, python-format msgid "This build was due on %(target)s" -msgstr "" +msgstr "此次生产的截止日期为 %(target)s" #: build/templates/build/build_base.html:157 #: build/templates/build/detail.html:67 msgid "Progress" -msgstr "" +msgstr "生产进度" #: build/templates/build/build_base.html:170 -#: build/templates/build/detail.html:87 order/models.py:823 +#: build/templates/build/detail.html:87 order/models.py:835 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:35 #: 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:329 +#: templates/js/translated/order.js:670 msgid "Sales Order" -msgstr "" +msgstr "销售订单" #: build/templates/build/build_base.html:177 #: build/templates/build/detail.html:101 #: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" -msgstr "" +msgstr "发布者" #: build/templates/build/build_base.html:214 msgid "Incomplete Outputs" -msgstr "" +msgstr "未完成输出" #: build/templates/build/build_base.html:215 msgid "Build Order cannot be completed as incomplete build outputs remain" @@ -1096,7 +1122,7 @@ msgstr "" #: build/templates/build/build_output_create.html:15 msgid "Trackable parts can have serial numbers specified" -msgstr "" +msgstr "可追踪商品可以指定序列号" #: build/templates/build/build_output_create.html:16 msgid "Enter serial numbers to generate multiple single build outputs" @@ -1104,15 +1130,15 @@ msgstr "" #: build/templates/build/cancel.html:5 msgid "Are you sure you wish to cancel this build?" -msgstr "" +msgstr "是否确定取消生产?" #: build/templates/build/complete.html:8 msgid "Build Order is complete" -msgstr "" +msgstr "生产订单已完成" #: build/templates/build/complete.html:12 msgid "Build Order is incomplete" -msgstr "" +msgstr "生产订单未完成" #: build/templates/build/complete.html:15 msgid "Incompleted build outputs remain" @@ -1120,11 +1146,11 @@ msgstr "" #: build/templates/build/complete.html:18 msgid "Required build quantity has not been completed" -msgstr "" +msgstr "所需生产数量尚未完成" #: build/templates/build/complete.html:21 msgid "Required stock has not been fully allocated" -msgstr "" +msgstr "所需库存尚未完全分配" #: build/templates/build/complete_output.html:10 msgid "Stock allocation is complete for this output" @@ -1132,7 +1158,7 @@ msgstr "" #: build/templates/build/complete_output.html:14 msgid "Stock allocation is incomplete" -msgstr "" +msgstr "库存分配尚未完成" #: build/templates/build/complete_output.html:20 msgid "tracked parts have not been fully allocated" @@ -1148,13 +1174,13 @@ 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" +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 "" +msgstr "%(part)s 没有可用库存" #: build/templates/build/delete_build_item.html:8 msgid "Are you sure you want to unallocate this stock?" @@ -1172,9 +1198,9 @@ msgstr "" msgid "Stock can be taken from any available location." msgstr "" -#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:782 -#: order/templates/order/purchase_order_detail.html:408 +#: 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 msgid "Destination" msgstr "" @@ -1184,73 +1210,73 @@ msgstr "" #: build/templates/build/detail.html:73 #: stock/templates/stock/item_base.html:317 -#: templates/js/translated/stock.js:1007 templates/js/translated/stock.js:1755 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:198 +#: 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 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:910 +#: templates/js/translated/build.js:933 msgid "Created" -msgstr "" +msgstr "已创建" #: build/templates/build/detail.html:130 msgid "No target date set" -msgstr "" +msgstr "无预计日期" -#: build/templates/build/detail.html:135 templates/js/translated/build.js:888 +#: build/templates/build/detail.html:135 templates/js/translated/build.js:911 msgid "Completed" -msgstr "" +msgstr "已完成" #: build/templates/build/detail.html:139 msgid "Build not complete" -msgstr "" +msgstr "生产未完成" #: build/templates/build/detail.html:150 build/templates/build/navbar.html:35 msgid "Child Build Orders" -msgstr "" +msgstr "子生产订单" #: build/templates/build/detail.html:166 msgid "Allocate Stock to Build" -msgstr "" +msgstr "为生产分配库存" #: build/templates/build/detail.html:172 msgid "Allocate stock to build" -msgstr "" +msgstr "为生产分配库存" #: build/templates/build/detail.html:173 msgid "Auto Allocate" -msgstr "" +msgstr "自动分配" -#: build/templates/build/detail.html:175 templates/js/translated/build.js:778 +#: build/templates/build/detail.html:175 templates/js/translated/build.js:801 msgid "Unallocate stock" -msgstr "" +msgstr "未分配库存" #: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638 msgid "Unallocate Stock" -msgstr "" +msgstr "未分配库存" #: build/templates/build/detail.html:179 msgid "Order required parts" -msgstr "" +msgstr "订单所需部件" #: build/templates/build/detail.html:180 -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 order/views.py:679 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 order/views.py:679 #: part/templates/part/category.html:140 msgid "Order Parts" -msgstr "" +msgstr "订购商品" #: build/templates/build/detail.html:186 msgid "Untracked stock has been fully allocated for this Build Order" -msgstr "" +msgstr "未跟踪的库存已完全分配给此生产订单" #: build/templates/build/detail.html:190 msgid "Untracked stock has not been fully allocated for this Build Order" -msgstr "" +msgstr "未跟踪的库存尚未完全分配给此生产订单" #: build/templates/build/detail.html:197 msgid "This Build Order does not have any associated untracked BOM items" @@ -1258,7 +1284,7 @@ msgstr "" #: build/templates/build/detail.html:206 msgid "Incomplete Build Outputs" -msgstr "" +msgstr "未完成的生产产出" #: build/templates/build/detail.html:211 msgid "Create new build output" @@ -1288,60 +1314,60 @@ msgstr "" #: 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:102 part/templates/part/navbar.html:105 -#: stock/templates/stock/item.html:87 stock/templates/stock/navbar.html:47 +#: 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 msgid "Attachments" -msgstr "" +msgstr "附件" #: build/templates/build/detail.html:257 msgid "Build Notes" -msgstr "" +msgstr "生产备注" -#: build/templates/build/detail.html:261 build/templates/build/detail.html:397 -#: company/templates/company/detail.html:173 -#: company/templates/company/detail.html:200 +#: 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:102 -#: stock/templates/stock/item.html:187 +#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103 +#: stock/templates/stock/item.html:188 msgid "Edit Notes" -msgstr "" +msgstr "编辑备注" #: build/templates/build/detail.html:357 #: order/templates/order/po_attachments.html:79 -#: order/templates/order/purchase_order_detail.html:156 -#: order/templates/order/sales_order_detail.html:145 -#: part/templates/part/detail.html:802 stock/templates/stock/item.html:251 +#: order/templates/order/purchase_order_detail.html:157 +#: order/templates/order/sales_order_detail.html:146 +#: part/templates/part/detail.html:890 stock/templates/stock/item.html:253 #: templates/attachment_table.html:6 msgid "Add Attachment" -msgstr "" +msgstr "添加附件" -#: build/templates/build/detail.html:375 +#: build/templates/build/detail.html:376 #: order/templates/order/po_attachments.html:51 -#: order/templates/order/purchase_order_detail.html:128 -#: order/templates/order/sales_order_detail.html:118 -#: part/templates/part/detail.html:756 stock/templates/stock/item.html:219 +#: order/templates/order/purchase_order_detail.html:129 +#: order/templates/order/sales_order_detail.html:119 +#: part/templates/part/detail.html:844 stock/templates/stock/item.html:221 msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:382 -#: order/templates/order/po_attachments.html:58 -#: order/templates/order/purchase_order_detail.html:135 -#: order/templates/order/sales_order_detail.html:124 -#: part/templates/part/detail.html:765 stock/templates/stock/item.html:228 -msgid "Confirm Delete Operation" -msgstr "" +msgstr "编辑附件" #: build/templates/build/detail.html:383 -#: order/templates/order/po_attachments.html:59 +#: 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:766 stock/templates/stock/item.html:229 +#: part/templates/part/detail.html:853 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:854 stock/templates/stock/item.html:231 msgid "Delete Attachment" -msgstr "" +msgstr "删除附件" #: build/templates/build/edit_build_item.html:7 msgid "Alter the quantity of stock allocated to the build output" @@ -1349,41 +1375,41 @@ msgstr "" #: build/templates/build/index.html:28 msgid "New Build Order" -msgstr "" +msgstr "新建生产订单" #: build/templates/build/index.html:37 build/templates/build/index.html:38 msgid "Print Build Orders" -msgstr "" +msgstr "打印生产订单" #: build/templates/build/index.html:43 #: order/templates/order/purchase_orders.html:27 #: order/templates/order/sales_orders.html:27 msgid "Display calendar view" -msgstr "" +msgstr "显示日历" #: build/templates/build/index.html:46 #: order/templates/order/purchase_orders.html:30 #: order/templates/order/sales_orders.html:30 msgid "Display list view" -msgstr "" +msgstr "列表视图" #: build/templates/build/navbar.html:12 msgid "Build Order Details" -msgstr "" +msgstr "生产订单详情" #: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15 -#: templates/js/translated/stock.js:1414 +#: templates/js/translated/stock.js:1555 msgid "Details" -msgstr "" +msgstr "详情" #: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23 #: build/views.py:90 msgid "Allocate Stock" -msgstr "" +msgstr "分配库存" #: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31 msgid "Build Outputs" -msgstr "" +msgstr "生产产出" #: build/templates/build/navbar.html:38 msgid "Child Builds" @@ -1391,43 +1417,43 @@ msgstr "" #: build/templates/build/navbar.html:49 msgid "Build Order Notes" -msgstr "" +msgstr "生产订单备注" #: build/templates/build/unallocate.html:10 msgid "Are you sure you wish to unallocate all stock for this build?" -msgstr "" +msgstr "您确定要取消此生产的所有库存分配?" #: build/templates/build/unallocate.html:12 msgid "All incomplete stock allocations will be removed from the build" -msgstr "" +msgstr "所有未完成的库存分配都将从生产中删除" #: build/views.py:76 msgid "Build was cancelled" -msgstr "" +msgstr "生产已取消" #: build/views.py:137 msgid "Allocated stock to build output" -msgstr "" +msgstr "已为生产分配库存" #: build/views.py:149 msgid "Create Build Output" -msgstr "" +msgstr "创建创建生产产出" #: build/views.py:167 msgid "Maximum output quantity is " -msgstr "" +msgstr "最大产出量是 " #: build/views.py:183 stock/views.py:1389 msgid "Serial numbers already exist" -msgstr "" +msgstr "序列号已存在" #: build/views.py:192 msgid "Serial numbers required for trackable build output" -msgstr "" +msgstr "可追踪的生产产出需要序列号" #: build/views.py:258 msgid "Delete Build Output" -msgstr "" +msgstr "删除生产产出" #: build/views.py:279 build/views.py:369 msgid "Confirm unallocation of build stock" @@ -1435,23 +1461,23 @@ msgstr "" #: build/views.py:280 build/views.py:370 stock/views.py:404 msgid "Check the confirmation box" -msgstr "" +msgstr "选中确认框" #: build/views.py:292 msgid "Build output does not match build" -msgstr "" +msgstr "生产产出与生产不匹配" #: build/views.py:294 build/views.py:495 msgid "Build output must be specified" -msgstr "" +msgstr "必须指定生成产出" #: build/views.py:306 msgid "Build output deleted" -msgstr "" +msgstr "生产产出已删除" #: build/views.py:404 msgid "Complete Build Order" -msgstr "" +msgstr "生产订单完成" #: build/views.py:410 msgid "Build order cannot be completed - incomplete outputs remain" @@ -1459,7 +1485,7 @@ msgstr "" #: build/views.py:421 msgid "Completed build order" -msgstr "" +msgstr "已完成的生产订单" #: build/views.py:437 msgid "Complete Build Output" @@ -1467,11 +1493,11 @@ msgstr "" #: build/views.py:479 msgid "Invalid stock status value selected" -msgstr "" +msgstr "选定的库存状态值无效" #: build/views.py:486 msgid "Quantity to complete cannot exceed build output quantity" -msgstr "" +msgstr "完成数量不能超过生产产出数量" #: build/views.py:492 msgid "Confirm completion of incomplete build" @@ -1479,11 +1505,11 @@ msgstr "" #: build/views.py:591 msgid "Build output completed" -msgstr "" +msgstr "生产产出已完成" #: build/views.py:628 msgid "Delete Build Order" -msgstr "" +msgstr "删除生产订单" #: build/views.py:643 msgid "Removed parts from build allocation" @@ -1491,29 +1517,29 @@ msgstr "" #: build/views.py:655 msgid "Allocate stock to build output" -msgstr "" +msgstr "为生产产出分配库存" #: build/views.py:698 msgid "Item must be currently in stock" -msgstr "" +msgstr "项目必须是当前库存" #: build/views.py:704 msgid "Stock item is over-allocated" -msgstr "" +msgstr "库存物品分配过度!" -#: build/views.py:705 templates/js/translated/bom.js:250 -#: templates/js/translated/build.js:705 templates/js/translated/build.js:1000 -#: templates/js/translated/build.js:1179 +#: 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 "" +msgstr "空闲" #: build/views.py:707 msgid "Stock item must be selected" -msgstr "" +msgstr "必须选择库存项" #: build/views.py:870 msgid "Edit Stock Allocation" -msgstr "" +msgstr "编辑库存分配" #: build/views.py:874 msgid "Updated Build Item" @@ -1521,7 +1547,7 @@ msgstr "" #: common/files.py:67 msgid "Unsupported file format: {ext.upper()}" -msgstr "" +msgstr "不支持的文件格式: {ext.uper()}" #: common/files.py:69 msgid "Error reading file (invalid encoding)" @@ -1539,7 +1565,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:42 +#: common/forms.py:34 templates/js/translated/attachment.js:54 msgid "File" msgstr "" @@ -1556,578 +1582,626 @@ msgstr "" msgid "Select {name} file to upload" msgstr "" -#: common/models.py:322 common/models.py:815 common/models.py:962 +#: common/models.py:308 common/models.py:839 common/models.py:986 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:324 +#: common/models.py:310 msgid "Settings value" msgstr "" -#: common/models.py:359 +#: common/models.py:345 msgid "Must be an integer value" msgstr "" -#: common/models.py:382 +#: common/models.py:368 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:393 +#: common/models.py:379 msgid "Value must be an integer value" msgstr "" -#: common/models.py:416 +#: common/models.py:402 msgid "Key string must be unique" msgstr "" -#: common/models.py:523 +#: common/models.py:509 msgid "InvenTree Instance Name" msgstr "" -#: common/models.py:525 +#: common/models.py:511 msgid "String descriptor for the server instance" msgstr "" -#: common/models.py:529 +#: common/models.py:515 msgid "Use instance name" msgstr "" -#: common/models.py:530 +#: common/models.py:516 msgid "Use the instance name in the title-bar" msgstr "" -#: common/models.py:536 company/models.py:97 company/models.py:98 +#: common/models.py:522 company/models.py:99 company/models.py:100 msgid "Company name" -msgstr "" +msgstr "公司名称" -#: common/models.py:537 +#: common/models.py:523 msgid "Internal company name" -msgstr "" +msgstr "内部公司名称" -#: common/models.py:542 +#: common/models.py:528 msgid "Base URL" msgstr "" -#: common/models.py:543 +#: common/models.py:529 msgid "Base URL for server instance" msgstr "" -#: common/models.py:549 +#: common/models.py:535 msgid "Default Currency" msgstr "" -#: common/models.py:550 +#: common/models.py:536 msgid "Default currency" msgstr "" -#: common/models.py:556 +#: common/models.py:542 msgid "Download from URL" msgstr "" -#: common/models.py:557 +#: common/models.py:543 msgid "Allow download of remote images and files from external URL" msgstr "" -#: common/models.py:563 +#: common/models.py:549 msgid "Barcode Support" msgstr "" -#: common/models.py:564 +#: common/models.py:550 msgid "Enable barcode scanner support" -msgstr "" +msgstr "启用条形码扫描支持" -#: common/models.py:570 +#: common/models.py:556 msgid "IPN Regex" msgstr "" -#: common/models.py:571 +#: common/models.py:557 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:575 +#: common/models.py:561 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:576 +#: common/models.py:562 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:582 +#: common/models.py:568 msgid "Allow Editing IPN" msgstr "" -#: common/models.py:583 +#: common/models.py:569 msgid "Allow changing the IPN value while editing a part" msgstr "" -#: common/models.py:589 +#: common/models.py:575 msgid "Copy Part BOM Data" msgstr "" -#: common/models.py:590 +#: common/models.py:576 msgid "Copy BOM data by default when duplicating a part" msgstr "" -#: common/models.py:596 +#: common/models.py:582 msgid "Copy Part Parameter Data" msgstr "" -#: common/models.py:597 +#: common/models.py:583 msgid "Copy parameter data by default when duplicating a part" msgstr "" -#: common/models.py:603 +#: common/models.py:589 msgid "Copy Part Test Data" msgstr "" -#: common/models.py:604 +#: common/models.py:590 msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:610 +#: common/models.py:596 msgid "Copy Category Parameter Templates" msgstr "" -#: common/models.py:611 +#: common/models.py:597 msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:617 part/models.py:2236 report/models.py:187 -#: stock/forms.py:224 templates/js/translated/table_filters.js:25 -#: templates/js/translated/table_filters.js:329 +#: 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 msgid "Template" -msgstr "" +msgstr "模板" -#: common/models.py:618 +#: common/models.py:604 msgid "Parts are templates by default" msgstr "" -#: common/models.py:624 part/models.py:803 -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:341 +#: common/models.py:610 part/models.py:805 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:354 msgid "Assembly" -msgstr "" +msgstr "组装" -#: common/models.py:625 +#: common/models.py:611 msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:631 part/models.py:809 -#: templates/js/translated/table_filters.js:345 +#: common/models.py:617 part/models.py:811 +#: templates/js/translated/table_filters.js:358 msgid "Component" -msgstr "" +msgstr "组件" -#: common/models.py:632 +#: common/models.py:618 msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:638 part/models.py:820 +#: common/models.py:624 part/models.py:822 msgid "Purchaseable" -msgstr "" +msgstr "可购买" + +#: common/models.py:625 +msgid "Parts are purchaseable by default" +msgstr "商品默认可购买" + +#: common/models.py:631 part/models.py:827 +#: templates/js/translated/table_filters.js:366 +msgid "Salable" +msgstr "可销售" + +#: common/models.py:632 +msgid "Parts are salable by default" +msgstr "商品默认可销售" + +#: common/models.py:638 part/models.py:817 +#: templates/js/translated/table_filters.js:46 +#: templates/js/translated/table_filters.js:370 +msgid "Trackable" +msgstr "可追踪" #: common/models.py:639 -msgid "Parts are purchaseable by default" -msgstr "" +msgid "Parts are trackable by default" +msgstr "商品默认可跟踪" -#: common/models.py:645 part/models.py:825 -#: templates/js/translated/table_filters.js:353 -msgid "Salable" -msgstr "" +#: common/models.py:645 part/models.py:837 +#: part/templates/part/part_base.html:66 +#: templates/js/translated/table_filters.js:42 +msgid "Virtual" +msgstr "虚拟" #: common/models.py:646 -msgid "Parts are salable by default" -msgstr "" - -#: common/models.py:652 part/models.py:815 -#: templates/js/translated/table_filters.js:33 -#: templates/js/translated/table_filters.js:357 -msgid "Trackable" -msgstr "" +msgid "Parts are virtual by default" +msgstr "商品默认是虚拟的" #: common/models.py:653 -msgid "Parts are trackable by default" -msgstr "" +msgid "Show Quantity in Forms" +msgstr "在表格中显示数量" -#: common/models.py:659 part/models.py:835 -#: part/templates/part/part_base.html:61 -#: templates/js/translated/table_filters.js:29 -msgid "Virtual" -msgstr "" +#: common/models.py:654 +msgid "Display available part quantity in some forms" +msgstr "在某些表格中显示可用的商品数量" #: common/models.py:660 -msgid "Parts are virtual by default" -msgstr "" +msgid "Show Import in Views" +msgstr "视图中显示导入" + +#: common/models.py:661 +msgid "Display the import wizard in some part views" +msgstr "在一些商品视图中显示导入向导" #: common/models.py:667 -msgid "Show Quantity in Forms" -msgstr "" +msgid "Show Price in Forms" +msgstr "在表格中显示价格" #: common/models.py:668 -msgid "Display available part quantity in some forms" -msgstr "" +msgid "Display part price in some forms" +msgstr "以某些表格显示商品价格" #: common/models.py:674 -msgid "Show Import in Views" -msgstr "" +msgid "Show related parts" +msgstr "显示相关商品" #: common/models.py:675 -msgid "Display the import wizard in some part views" -msgstr "" - -#: common/models.py:681 -msgid "Show Price in Forms" -msgstr "" - -#: common/models.py:682 -msgid "Display part price in some forms" -msgstr "" - -#: common/models.py:688 -msgid "Show related parts" -msgstr "" - -#: common/models.py:689 msgid "Display related parts for a part" msgstr "" -#: common/models.py:695 +#: common/models.py:681 msgid "Create initial stock" -msgstr "" +msgstr "创建初始库存" -#: common/models.py:696 +#: common/models.py:682 msgid "Create initial stock on part creation" msgstr "" -#: common/models.py:702 +#: common/models.py:688 msgid "Internal Prices" -msgstr "" +msgstr "内部价格" + +#: common/models.py:689 +msgid "Enable internal prices for parts" +msgstr "启用内部商品价格" + +#: common/models.py:695 +msgid "Internal Price as BOM-Price" +msgstr "内部价格为BOM价格" + +#: common/models.py:696 +msgid "Use the internal price (if set) in BOM-price calculations" +msgstr "在 BOM价格计算中使用内部价格(如设置)" + +#: common/models.py:702 templates/stats.html:25 +msgid "Debug Mode" +msgstr "调试模式" #: common/models.py:703 -msgid "Enable internal prices for parts" -msgstr "" +msgid "Generate reports in debug mode (HTML output)" +msgstr "在调试模式生成报告(HTML输出)" #: common/models.py:709 -msgid "Internal Price as BOM-Price" -msgstr "" +msgid "Page Size" +msgstr "页面大小" #: common/models.py:710 -msgid "Use the internal price (if set) in BOM-price calculations" -msgstr "" - -#: common/models.py:716 templates/stats.html:25 -msgid "Debug Mode" -msgstr "" - -#: common/models.py:717 -msgid "Generate reports in debug mode (HTML output)" -msgstr "" - -#: common/models.py:723 -msgid "Page Size" -msgstr "" - -#: common/models.py:724 msgid "Default page size for PDF reports" -msgstr "" +msgstr "PDF 报表默认页面大小" + +#: 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 "Test Reports" -msgstr "" +msgid "Sell Expired Stock" +msgstr "销售过期库存" #: common/models.py:735 -msgid "Enable generation of test reports" -msgstr "" +msgid "Allow sale of expired stock" +msgstr "允许销售过期库存" #: common/models.py:741 -msgid "Stock Expiry" -msgstr "" - -#: common/models.py:742 -msgid "Enable stock expiry functionality" -msgstr "" - -#: common/models.py:748 -msgid "Sell Expired Stock" -msgstr "" - -#: common/models.py:749 -msgid "Allow sale of expired stock" -msgstr "" - -#: common/models.py:755 msgid "Stock Stale Time" msgstr "" -#: common/models.py:756 +#: common/models.py:742 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:758 +#: common/models.py:744 msgid "days" -msgstr "" +msgstr "天" -#: common/models.py:763 +#: common/models.py:749 msgid "Build Expired Stock" msgstr "" -#: common/models.py:764 +#: common/models.py:750 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:770 +#: common/models.py:756 msgid "Stock Ownership Control" -msgstr "" +msgstr "库存所有权控制" -#: common/models.py:771 +#: common/models.py:757 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:777 +#: common/models.py:763 msgid "Group by Part" -msgstr "" +msgstr "按商品分组" -#: common/models.py:778 +#: common/models.py:764 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:784 +#: common/models.py:770 msgid "Build Order Reference Prefix" -msgstr "" +msgstr "生产订单参考前缀" -#: common/models.py:785 +#: common/models.py:771 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:790 +#: common/models.py:776 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:791 +#: common/models.py:777 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:795 +#: common/models.py:781 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:796 +#: common/models.py:782 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:801 +#: common/models.py:787 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:802 +#: common/models.py:788 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:826 +#: 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 "在 InventTree 界面中启用采购功能" + +#: common/models.py:806 +msgid "Enable sell" +msgstr "启用销售" + +#: common/models.py:807 +msgid "Enable sell functionality in InvenTree interface" +msgstr "在 InventTree 界面中启用销售功能" + +#: common/models.py:812 +msgid "Enable stock" +msgstr "" + +#: common/models.py:813 +msgid "Enable stock functionality in InvenTree interface" +msgstr "" + +#: common/models.py:818 +msgid "Enable SO" +msgstr "" + +#: common/models.py:819 +msgid "Enable SO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:824 +msgid "Enable PO" +msgstr "" + +#: common/models.py:825 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: common/models.py:850 msgid "Show starred parts" -msgstr "" +msgstr "显示星标商品" -#: common/models.py:827 +#: common/models.py:851 msgid "Show starred parts on the homepage" -msgstr "" +msgstr "在主页上显示星标商品" -#: common/models.py:832 +#: common/models.py:856 msgid "Show latest parts" -msgstr "" +msgstr "显示最近商品" -#: common/models.py:833 +#: common/models.py:857 msgid "Show latest parts on the homepage" -msgstr "" +msgstr "在主页上显示最近商品" -#: common/models.py:838 +#: common/models.py:862 msgid "Recent Part Count" msgstr "" -#: common/models.py:839 +#: common/models.py:863 msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:845 +#: common/models.py:869 msgid "Show unvalidated BOMs" msgstr "" -#: common/models.py:846 +#: common/models.py:870 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:851 +#: common/models.py:875 msgid "Show recent stock changes" msgstr "" -#: common/models.py:852 +#: common/models.py:876 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:857 +#: common/models.py:881 msgid "Recent Stock Count" msgstr "" -#: common/models.py:858 +#: common/models.py:882 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:863 +#: common/models.py:887 msgid "Show low stock" msgstr "" -#: common/models.py:864 +#: common/models.py:888 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:869 +#: common/models.py:893 msgid "Show depleted stock" msgstr "" -#: common/models.py:870 +#: common/models.py:894 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:875 +#: common/models.py:899 msgid "Show needed stock" msgstr "" -#: common/models.py:876 +#: common/models.py:900 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:881 +#: common/models.py:905 msgid "Show expired stock" msgstr "" -#: common/models.py:882 +#: common/models.py:906 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:887 +#: common/models.py:911 msgid "Show stale stock" msgstr "" -#: common/models.py:888 +#: common/models.py:912 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:893 +#: common/models.py:917 msgid "Show pending builds" msgstr "" -#: common/models.py:894 +#: common/models.py:918 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:899 +#: common/models.py:923 msgid "Show overdue builds" -msgstr "" +msgstr "显示逾期生产" -#: common/models.py:900 +#: common/models.py:924 msgid "Show overdue builds on the homepage" -msgstr "" +msgstr "在主页上显示逾期的生产" -#: common/models.py:905 +#: common/models.py:929 msgid "Show outstanding POs" msgstr "" -#: common/models.py:906 +#: common/models.py:930 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:911 +#: common/models.py:935 msgid "Show overdue POs" msgstr "" -#: common/models.py:912 +#: common/models.py:936 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:917 +#: common/models.py:941 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:918 +#: common/models.py:942 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:923 +#: common/models.py:947 msgid "Show overdue SOs" msgstr "" -#: common/models.py:924 +#: common/models.py:948 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:930 +#: common/models.py:954 msgid "Inline label display" -msgstr "" +msgstr "内嵌标签显示" -#: common/models.py:931 +#: common/models.py:955 msgid "Display PDF labels in the browser, instead of downloading as a file" -msgstr "" +msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载" -#: common/models.py:937 +#: common/models.py:961 msgid "Inline report display" msgstr "" -#: common/models.py:938 +#: common/models.py:962 msgid "Display PDF reports in the browser, instead of downloading as a file" -msgstr "" +msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载" -#: common/models.py:944 +#: common/models.py:968 msgid "Search Preview Results" -msgstr "" +msgstr "搜索预览结果" -#: common/models.py:945 +#: common/models.py:969 msgid "Number of results to show in search preview window" -msgstr "" +msgstr "搜索预览窗口中显示的结果数" -#: common/models.py:1002 company/forms.py:43 +#: common/models.py:1026 company/forms.py:43 msgid "Price break quantity" msgstr "" -#: common/models.py:1009 company/templates/company/supplier_part.html:231 -#: templates/js/translated/part.js:1153 +#: common/models.py:1033 company/templates/company/supplier_part.html:231 +#: templates/js/translated/part.js:1369 msgid "Price" -msgstr "" +msgstr "价格" -#: common/models.py:1010 +#: common/models.py:1034 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:1103 +#: common/models.py:1127 msgid "Default" -msgstr "" +msgstr "默认" #: common/templates/common/edit_setting.html:11 msgid "Current value" -msgstr "" +msgstr "当前数值" #: common/views.py:33 msgid "Change Setting" -msgstr "" +msgstr "更改设置" #: common/views.py:119 msgid "Supplied value is not allowed" -msgstr "" +msgstr "提供的值不被允许" #: common/views.py:128 msgid "Supplied value must be a boolean" -msgstr "" +msgstr "提供的值必须为布尔值" #: common/views.py:138 msgid "Change User Setting" -msgstr "" +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:45 +#: 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 msgid "Upload File" -msgstr "" +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 @@ -2135,26 +2209,26 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269 #: part/views.py:883 msgid "Match Fields" -msgstr "" +msgstr "匹配字段" #: common/views.py:215 msgid "Match Items" -msgstr "" +msgstr "匹配项" #: common/views.py:560 msgid "Fields matching failed" -msgstr "" +msgstr "字段匹配失败" #: common/views.py:615 msgid "Parts imported" -msgstr "" +msgstr "已导入商品" #: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27 #: order/templates/order/order_wizard/match_parts.html:19 #: order/templates/order/order_wizard/po_upload.html:40 #: part/templates/part/bom_upload/match_fields.html:27 #: part/templates/part/bom_upload/match_parts.html:19 -#: part/templates/part/bom_upload/upload_file.html:43 +#: part/templates/part/bom_upload/upload_file.html:63 #: 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 @@ -2163,625 +2237,629 @@ 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" -#: company/models.py:102 +#: company/models.py:104 msgid "Company description" -msgstr "" +msgstr "公司简介" -#: company/models.py:103 +#: company/models.py:105 msgid "Description of the company" -msgstr "" +msgstr "公司简介" -#: company/models.py:109 company/templates/company/company_base.html:70 -#: templates/js/translated/company.js:303 +#: company/models.py:111 company/templates/company/company_base.html:70 +#: templates/js/translated/company.js:348 msgid "Website" -msgstr "" +msgstr "网站" -#: company/models.py:110 +#: company/models.py:112 msgid "Company website URL" -msgstr "" +msgstr "公司网站" -#: company/models.py:114 company/templates/company/company_base.html:88 +#: company/models.py:116 company/templates/company/company_base.html:88 msgid "Address" -msgstr "" +msgstr "地址" -#: company/models.py:115 +#: company/models.py:117 msgid "Company address" -msgstr "" +msgstr "公司地址" -#: company/models.py:118 +#: company/models.py:120 msgid "Phone number" -msgstr "" +msgstr "电话号码" -#: company/models.py:119 +#: company/models.py:121 msgid "Contact phone number" -msgstr "" +msgstr "联系电话" -#: company/models.py:122 company/templates/company/company_base.html:102 +#: company/models.py:124 company/templates/company/company_base.html:102 msgid "Email" -msgstr "" +msgstr "电子邮件" -#: company/models.py:122 +#: company/models.py:124 msgid "Contact email address" -msgstr "" +msgstr "联系人电子邮件" -#: company/models.py:125 company/templates/company/company_base.html:109 +#: company/models.py:127 company/templates/company/company_base.html:109 msgid "Contact" -msgstr "" +msgstr "联系人" -#: company/models.py:126 +#: company/models.py:128 msgid "Point of contact" msgstr "" -#: company/models.py:128 company/models.py:345 company/models.py:513 -#: order/models.py:160 part/models.py:712 +#: 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:486 -#: templates/js/translated/company.js:768 templates/js/translated/part.js:819 +#: templates/js/translated/company.js:536 +#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 msgid "Link" -msgstr "" +msgstr "链接" -#: company/models.py:128 +#: company/models.py:130 msgid "Link to external company information" -msgstr "" +msgstr "链接到外部公司信息" -#: company/models.py:136 part/models.py:722 +#: company/models.py:138 part/models.py:724 msgid "Image" -msgstr "" +msgstr "图片" -#: company/models.py:141 +#: company/models.py:143 msgid "is customer" -msgstr "" +msgstr "是客户" -#: company/models.py:141 +#: company/models.py:143 msgid "Do you sell items to this company?" -msgstr "" +msgstr "您是否向该公司出售商品?" -#: company/models.py:143 +#: company/models.py:145 msgid "is supplier" -msgstr "" +msgstr "是供应商" -#: company/models.py:143 +#: company/models.py:145 msgid "Do you purchase items from this company?" -msgstr "" +msgstr "您是否从该公司采购商品?" -#: company/models.py:145 +#: company/models.py:147 msgid "is manufacturer" -msgstr "" +msgstr "是制造商" -#: company/models.py:145 +#: company/models.py:147 msgid "Does this company manufacture parts?" -msgstr "" +msgstr "该公司制造商品吗?" -#: company/models.py:149 company/serializers.py:245 -#: company/templates/company/company_base.html:76 +#: company/models.py:151 company/serializers.py:264 +#: company/templates/company/company_base.html:76 stock/serializers.py:155 msgid "Currency" -msgstr "" +msgstr "货币" -#: company/models.py:152 +#: company/models.py:154 msgid "Default currency used for this company" -msgstr "" +msgstr "该公司使用的默认货币" -#: company/models.py:317 company/models.py:484 stock/models.py:448 +#: company/models.py:319 company/models.py:534 stock/models.py:454 #: stock/templates/stock/item_base.html:237 msgid "Base Part" msgstr "" -#: company/models.py:321 company/models.py:488 order/views.py:1082 +#: company/models.py:323 company/models.py:538 order/views.py:1082 msgid "Select part" -msgstr "" +msgstr "选择商品" -#: company/models.py:332 company/templates/company/company_base.html:116 +#: 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:287 -#: templates/js/translated/company.js:463 -#: templates/js/translated/company.js:739 +#: templates/js/translated/company.js:332 +#: templates/js/translated/company.js:513 +#: templates/js/translated/company.js:796 templates/js/translated/part.js:227 msgid "Manufacturer" -msgstr "" +msgstr "制造商" -#: company/models.py:333 +#: company/models.py:335 templates/js/translated/part.js:228 msgid "Select manufacturer" -msgstr "" +msgstr "选择制造商" -#: company/models.py:339 company/templates/company/manufacturer_part.html:93 -#: company/templates/company/supplier_part.html:106 -#: order/templates/order/purchase_order_detail.html:331 part/bom.py:171 -#: part/bom.py:242 templates/js/translated/company.js:479 -#: templates/js/translated/company.js:757 +#: 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:529 +#: templates/js/translated/company.js:814 templates/js/translated/order.js:505 +#: templates/js/translated/part.js:238 msgid "MPN" -msgstr "" +msgstr "MPN" -#: company/models.py:340 +#: company/models.py:342 templates/js/translated/part.js:239 msgid "Manufacturer Part Number" -msgstr "" +msgstr "制造商商品编号" -#: company/models.py:346 +#: company/models.py:348 msgid "URL for external manufacturer part link" msgstr "" -#: company/models.py:352 +#: company/models.py:354 msgid "Manufacturer part description" -msgstr "" +msgstr "制造商商品描述" -#: company/models.py:406 company/models.py:507 +#: company/models.py:408 company/models.py:557 #: company/templates/company/manufacturer_part.html:6 #: company/templates/company/manufacturer_part.html:23 #: stock/templates/stock/item_base.html:376 msgid "Manufacturer Part" -msgstr "" +msgstr "制造商商品" -#: company/models.py:413 +#: company/models.py:415 msgid "Parameter name" -msgstr "" +msgstr "参数名称" -#: company/models.py:419 +#: company/models.py:421 #: report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1808 templates/InvenTree/settings/header.html:8 -#: templates/js/translated/company.js:589 templates/js/translated/part.js:480 -#: templates/js/translated/stock.js:505 +#: 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:576 msgid "Value" -msgstr "" +msgstr "数值" -#: company/models.py:420 +#: company/models.py:422 msgid "Parameter value" -msgstr "" +msgstr "参数值" -#: company/models.py:426 part/models.py:797 part/models.py:2204 -#: templates/js/translated/company.js:595 templates/js/translated/part.js:486 +#: company/models.py:428 part/models.py:799 part/models.py:2220 +#: templates/js/translated/company.js:649 templates/js/translated/part.js:629 msgid "Units" -msgstr "" +msgstr "单位" -#: company/models.py:427 +#: company/models.py:429 msgid "Parameter units" +msgstr "参数单位" + +#: company/models.py:501 +msgid "Linked manufacturer part must reference the same base part" msgstr "" -#: company/models.py:494 company/templates/company/company_base.html:121 +#: 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:291 -#: templates/js/translated/company.js:713 templates/js/translated/order.js:254 +#: templates/js/translated/company.js:336 +#: templates/js/translated/company.js:770 templates/js/translated/order.js:328 +#: templates/js/translated/part.js:208 msgid "Supplier" -msgstr "" +msgstr "供应商" -#: company/models.py:495 +#: company/models.py:545 templates/js/translated/part.js:209 msgid "Select supplier" -msgstr "" +msgstr "选择供应商" -#: company/models.py:500 company/templates/company/supplier_part.html:92 -#: order/templates/order/purchase_order_detail.html:318 part/bom.py:176 -#: part/bom.py:287 +#: 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:219 msgid "SKU" -msgstr "" +msgstr "SKU" -#: company/models.py:501 +#: company/models.py:551 templates/js/translated/part.js:220 msgid "Supplier stock keeping unit" msgstr "" -#: company/models.py:508 +#: company/models.py:558 msgid "Select manufacturer part" -msgstr "" +msgstr "选择制造商商品" -#: company/models.py:514 +#: company/models.py:564 msgid "URL for external supplier part link" -msgstr "" +msgstr "外部供货商商品链接URL" -#: company/models.py:520 +#: company/models.py:570 msgid "Supplier part description" -msgstr "" +msgstr "供应商商品描述" -#: company/models.py:525 company/templates/company/supplier_part.html:120 -#: part/models.py:2352 report/templates/report/inventree_po_report.html:93 +#: company/models.py:575 company/templates/company/supplier_part.html:120 +#: part/models.py:2368 report/templates/report/inventree_po_report.html:93 #: report/templates/report/inventree_so_report.html:93 msgid "Note" -msgstr "" +msgstr "备注" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "base cost" msgstr "" -#: company/models.py:529 part/models.py:1590 +#: company/models.py:579 part/models.py:1599 msgid "Minimum charge (e.g. stocking fee)" -msgstr "" +msgstr "最低收费(例如库存费)" -#: company/models.py:531 company/templates/company/supplier_part.html:113 -#: stock/models.py:472 stock/templates/stock/item_base.html:324 -#: templates/js/translated/company.js:789 templates/js/translated/stock.js:1086 +#: 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:846 templates/js/translated/stock.js:1057 msgid "Packaging" -msgstr "" +msgstr "打包" -#: company/models.py:531 +#: company/models.py:581 msgid "Part packaging" -msgstr "" +msgstr "商品打包" -#: company/models.py:533 part/models.py:1592 +#: company/models.py:583 part/models.py:1601 msgid "multiple" msgstr "" -#: company/models.py:533 +#: company/models.py:583 msgid "Order multiple" msgstr "" #: company/serializers.py:68 msgid "Default currency used for this supplier" -msgstr "" +msgstr "该公司使用的默认货币" #: company/serializers.py:69 msgid "Currency Code" -msgstr "" +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:276 +#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321 msgid "Company" -msgstr "" +msgstr "公司" #: company/templates/company/company_base.html:25 #: part/templates/part/part_thumb.html:21 msgid "Upload new image" -msgstr "" +msgstr "上传新图片" #: company/templates/company/company_base.html:27 #: part/templates/part/part_thumb.html:23 msgid "Download image from URL" -msgstr "" +msgstr "从 URL 下载图片" #: company/templates/company/company_base.html:46 -#: templates/js/translated/order.js:83 +#: templates/js/translated/order.js:117 msgid "Create Purchase Order" -msgstr "" +msgstr "创建采购订单" #: company/templates/company/company_base.html:51 msgid "Edit company information" -msgstr "" +msgstr "编辑公司信息" #: company/templates/company/company_base.html:56 #: company/templates/company/company_base.html:153 msgid "Delete Company" -msgstr "" +msgstr "删除该公司" #: company/templates/company/company_base.html:64 msgid "Company Details" -msgstr "" +msgstr "公司详细信息" #: company/templates/company/company_base.html:81 msgid "Uses default currency" -msgstr "" +msgstr "使用默认货币" #: company/templates/company/company_base.html:95 msgid "Phone" -msgstr "" +msgstr "电话" -#: company/templates/company/company_base.html:126 order/models.py:544 -#: order/templates/order/sales_order_base.html:94 stock/models.py:490 -#: stock/models.py:491 stock/templates/stock/item_base.html:276 -#: templates/js/translated/company.js:283 templates/js/translated/order.js:351 -#: templates/js/translated/stock.js:1467 +#: 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 msgid "Customer" -msgstr "" +msgstr "客户" #: company/templates/company/company_base.html:193 -#: part/templates/part/part_base.html:405 +#: part/templates/part/part_base.html:418 msgid "Upload Image" -msgstr "" +msgstr "上传图片" #: company/templates/company/detail.html:14 #: company/templates/company/manufacturer_part_navbar.html:18 -#: templates/InvenTree/search.html:164 +#: templates/InvenTree/search.html:150 msgid "Supplier Parts" -msgstr "" +msgstr "供应商商品" #: company/templates/company/detail.html:22 #: order/templates/order/order_wizard/select_parts.html:44 msgid "Create new supplier part" -msgstr "" +msgstr "创建新的供应商商品" #: company/templates/company/detail.html:23 #: company/templates/company/manufacturer_part.html:109 #: part/templates/part/detail.html:289 msgid "New Supplier Part" -msgstr "" +msgstr "新建供应商商品" -#: company/templates/company/detail.html:28 -#: company/templates/company/detail.html:70 +#: 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 "" +msgstr "选项" -#: company/templates/company/detail.html:33 -#: company/templates/company/detail.html:75 +#: company/templates/company/detail.html:32 +#: company/templates/company/detail.html:72 #: part/templates/part/category.html:140 msgid "Order parts" -msgstr "" +msgstr "订购商品" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete parts" -msgstr "" +msgstr "删除商品" -#: company/templates/company/detail.html:36 -#: company/templates/company/detail.html:78 +#: company/templates/company/detail.html:35 +#: company/templates/company/detail.html:75 msgid "Delete Parts" -msgstr "" +msgstr "删除商品" -#: company/templates/company/detail.html:56 templates/InvenTree/search.html:149 +#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135 msgid "Manufacturer Parts" -msgstr "" +msgstr "制造商商品" -#: company/templates/company/detail.html:64 +#: company/templates/company/detail.html:62 msgid "Create new manufacturer part" -msgstr "" +msgstr "新建制造商商品" -#: company/templates/company/detail.html:65 part/templates/part/detail.html:312 +#: company/templates/company/detail.html:63 part/templates/part/detail.html:312 msgid "New Manufacturer Part" -msgstr "" +msgstr "新建制造商商品" -#: company/templates/company/detail.html:97 +#: company/templates/company/detail.html:93 msgid "Supplier Stock" -msgstr "" +msgstr "供货商库存" -#: company/templates/company/detail.html:106 -#: company/templates/company/navbar.html:40 -#: company/templates/company/navbar.html:43 +#: company/templates/company/detail.html:102 +#: company/templates/company/navbar.html:46 +#: company/templates/company/navbar.html:49 #: 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:71 -#: part/templates/part/navbar.html:74 templates/InvenTree/index.html:260 -#: templates/InvenTree/search.html:325 +#: 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:107 -#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:37 +#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44 #: users/models.py:45 msgid "Purchase Orders" -msgstr "" +msgstr "采购订单" -#: company/templates/company/detail.html:112 +#: company/templates/company/detail.html:108 #: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" -msgstr "" +msgstr "新建采购订单" -#: company/templates/company/detail.html:113 +#: company/templates/company/detail.html:109 #: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" -msgstr "" +msgstr "新建采购订单" -#: company/templates/company/detail.html:128 -#: company/templates/company/navbar.html:49 -#: company/templates/company/navbar.html:52 -#: 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:79 -#: part/templates/part/navbar.html:82 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:46 -#: users/models.py:46 -msgid "Sales Orders" -msgstr "" - -#: company/templates/company/detail.html:134 -#: order/templates/order/sales_orders.html:20 -msgid "Create new sales order" -msgstr "" - -#: company/templates/company/detail.html:135 -#: order/templates/order/sales_orders.html:21 -msgid "New Sales Order" -msgstr "" - -#: company/templates/company/detail.html:151 +#: company/templates/company/detail.html:124 #: company/templates/company/navbar.html:55 #: company/templates/company/navbar.html:58 -#: templates/js/translated/build.js:597 +#: 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:113 +#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55 +#: users/models.py:46 +msgid "Sales Orders" +msgstr "销售订单" + +#: company/templates/company/detail.html:130 +#: order/templates/order/sales_orders.html:20 +msgid "Create new sales order" +msgstr "新建销售订单" + +#: company/templates/company/detail.html:131 +#: 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 msgid "Assigned Stock" msgstr "" -#: company/templates/company/detail.html:169 +#: company/templates/company/detail.html:165 msgid "Company Notes" -msgstr "" +msgstr "公司备注" #: company/templates/company/detail.html:364 #: company/templates/company/manufacturer_part.html:200 -#: part/templates/part/detail.html:826 +#: part/templates/part/detail.html:357 msgid "Delete Supplier Parts?" -msgstr "" +msgstr "删除供应商商品?" #: company/templates/company/detail.html:365 #: company/templates/company/manufacturer_part.html:201 -#: part/templates/part/detail.html:827 +#: part/templates/part/detail.html:358 msgid "All selected supplier parts will be deleted" -msgstr "" +msgstr "删除所有选定的供应商商品" #: company/templates/company/index.html:8 msgid "Supplier List" -msgstr "" +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:109 +#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116 msgid "Order part" -msgstr "" +msgstr "订购商品" #: company/templates/company/manufacturer_part.html:45 -#: templates/js/translated/company.js:511 +#: templates/js/translated/company.js:561 msgid "Edit manufacturer part" -msgstr "" +msgstr "编辑制造商商品" #: company/templates/company/manufacturer_part.html:49 -#: templates/js/translated/company.js:512 +#: templates/js/translated/company.js:562 msgid "Delete manufacturer part" -msgstr "" +msgstr "删除生产商商品" #: company/templates/company/manufacturer_part.html:61 msgid "Manufacturer Part Details" -msgstr "" +msgstr "制造商商品详细信息" #: company/templates/company/manufacturer_part.html:66 #: company/templates/company/supplier_part.html:65 msgid "Internal Part" -msgstr "" +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:65 -#: part/templates/part/navbar.html:68 part/templates/part/prices.html:144 -#: templates/InvenTree/search.html:316 templates/navbar.html:35 +#: 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 msgid "Suppliers" -msgstr "" +msgstr "供应商" #: company/templates/company/manufacturer_part.html:114 #: part/templates/part/detail.html:294 msgid "Delete supplier parts" -msgstr "" +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:377 -#: users/models.py:194 +#: part/templates/part/detail.html:317 templates/js/translated/company.js:424 +#: templates/js/translated/helpers.js:31 users/models.py:194 msgid "Delete" -msgstr "" +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:14 -#: part/templates/part/navbar.html:17 +#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20 +#: part/templates/part/navbar.html:23 msgid "Parameters" -msgstr "" +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 msgid "New Parameter" -msgstr "" +msgstr "新建参数" #: company/templates/company/manufacturer_part.html:138 msgid "Delete parameters" -msgstr "" +msgstr "删除参数" #: company/templates/company/manufacturer_part.html:176 -#: part/templates/part/detail.html:719 +#: part/templates/part/detail.html:804 msgid "Add Parameter" -msgstr "" +msgstr "添加参数" #: company/templates/company/manufacturer_part.html:224 msgid "Selected parameters will be deleted" -msgstr "" +msgstr "所选参数将被删除" #: company/templates/company/manufacturer_part.html:236 msgid "Delete Parameters" -msgstr "" +msgstr "删除参数" #: company/templates/company/manufacturer_part_navbar.html:26 msgid "Manufacturer Part Stock" -msgstr "" +msgstr "制造商商品库存" #: company/templates/company/manufacturer_part_navbar.html:29 -#: company/templates/company/navbar.html:34 +#: company/templates/company/navbar.html:39 #: company/templates/company/supplier_part_navbar.html:15 -#: part/templates/part/navbar.html:31 stock/api.py:53 +#: 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/index.html:150 templates/InvenTree/search.html:182 #: templates/InvenTree/settings/navbar.html:95 #: templates/InvenTree/settings/navbar.html:97 -#: templates/js/translated/part.js:401 templates/js/translated/part.js:626 -#: templates/js/translated/part.js:786 templates/js/translated/stock.js:133 -#: templates/js/translated/stock.js:935 templates/navbar.html:26 +#: templates/js/translated/part.js:540 templates/js/translated/part.js:769 +#: templates/js/translated/part.js:945 templates/js/translated/stock.js:202 +#: templates/js/translated/stock.js:850 templates/navbar.html:32 msgid "Stock" -msgstr "" +msgstr "库存" #: company/templates/company/manufacturer_part_navbar.html:33 msgid "Manufacturer Part Orders" -msgstr "" +msgstr "制造商商品订单" #: company/templates/company/manufacturer_part_navbar.html:36 #: company/templates/company/supplier_part_navbar.html:22 msgid "Orders" -msgstr "" +msgstr "订单" -#: company/templates/company/navbar.html:13 -#: company/templates/company/navbar.html:16 +#: company/templates/company/navbar.html:17 +#: company/templates/company/navbar.html:20 msgid "Manufactured Parts" -msgstr "" +msgstr "制造商商品" -#: company/templates/company/navbar.html:22 -#: company/templates/company/navbar.html:25 +#: company/templates/company/navbar.html:26 +#: company/templates/company/navbar.html:29 msgid "Supplied Parts" -msgstr "" +msgstr "供应商商品" -#: company/templates/company/navbar.html:31 part/templates/part/navbar.html:28 +#: 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:1366 +#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1507 #: templates/stats.html:93 templates/stats.html:102 users/models.py:43 msgid "Stock Items" -msgstr "" +msgstr "库存项" #: company/templates/company/supplier_part.html:7 -#: company/templates/company/supplier_part.html:24 stock/models.py:457 +#: company/templates/company/supplier_part.html:24 stock/models.py:463 #: stock/templates/stock/item_base.html:388 -#: templates/js/translated/company.js:729 templates/js/translated/stock.js:1058 +#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1014 msgid "Supplier Part" -msgstr "" +msgstr "供应商商品" #: company/templates/company/supplier_part.html:44 -#: templates/js/translated/company.js:802 +#: templates/js/translated/company.js:859 msgid "Edit supplier part" -msgstr "" +msgstr "编辑供应商商品" #: company/templates/company/supplier_part.html:48 -#: templates/js/translated/company.js:803 +#: templates/js/translated/company.js:860 msgid "Delete supplier part" -msgstr "" +msgstr "删除供应商商品" #: company/templates/company/supplier_part.html:60 msgid "Supplier Part Details" -msgstr "" +msgstr "供应商商品详细信息" #: company/templates/company/supplier_part.html:131 #: company/templates/company/supplier_part_navbar.html:12 msgid "Supplier Part Stock" -msgstr "" +msgstr "供货商商品库存" #: company/templates/company/supplier_part.html:140 #: company/templates/company/supplier_part_navbar.html:19 msgid "Supplier Part Orders" -msgstr "" +msgstr "供应商商品订单" #: company/templates/company/supplier_part.html:147 #: part/templates/part/detail.html:56 msgid "Order Part" -msgstr "" +msgstr "订购商品" #: company/templates/company/supplier_part.html:158 -#: part/templates/part/navbar.html:58 part/templates/part/prices.html:7 +#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7 msgid "Pricing Information" -msgstr "" +msgstr "价格信息" #: company/templates/company/supplier_part.html:164 #: company/templates/company/supplier_part.html:265 -#: part/templates/part/prices.html:253 part/views.py:1722 +#: part/templates/part/prices.html:271 part/views.py:1730 msgid "Add Price Break" msgstr "" @@ -2789,11 +2867,11 @@ msgstr "" msgid "No price break information found" msgstr "" -#: company/templates/company/supplier_part.html:199 part/views.py:1784 +#: company/templates/company/supplier_part.html:199 part/views.py:1792 msgid "Delete Price Break" msgstr "" -#: company/templates/company/supplier_part.html:213 part/views.py:1770 +#: company/templates/company/supplier_part.html:213 part/views.py:1778 msgid "Edit Price Break" msgstr "" @@ -2807,106 +2885,106 @@ msgstr "" #: company/templates/company/supplier_part_navbar.html:26 msgid "Supplier Part Pricing" -msgstr "" +msgstr "供应商商品价格" #: company/templates/company/supplier_part_navbar.html:29 msgid "Pricing" -msgstr "" +msgstr "定价" #: company/views.py:50 msgid "New Supplier" -msgstr "" +msgstr "新增供应商" -#: company/views.py:55 part/templates/part/prices.html:148 -#: templates/InvenTree/search.html:306 templates/navbar.html:36 +#: company/views.py:55 part/templates/part/prices.html:167 +#: templates/InvenTree/search.html:210 templates/navbar.html:42 msgid "Manufacturers" -msgstr "" +msgstr "制造商" #: company/views.py:56 msgid "New Manufacturer" -msgstr "" +msgstr "新建制造商" -#: company/views.py:61 templates/InvenTree/search.html:336 -#: templates/navbar.html:45 +#: company/views.py:61 templates/InvenTree/search.html:240 +#: templates/navbar.html:53 msgid "Customers" -msgstr "" +msgstr "客户信息" #: company/views.py:62 msgid "New Customer" -msgstr "" +msgstr "新建客户" #: company/views.py:69 msgid "Companies" -msgstr "" +msgstr "公司" #: company/views.py:70 msgid "New Company" -msgstr "" +msgstr "新建公司信息" #: company/views.py:129 part/views.py:608 msgid "Download Image" -msgstr "" +msgstr "下载图片" #: company/views.py:158 part/views.py:640 msgid "Image size exceeds maximum allowable size for download" -msgstr "" +msgstr "图像大小超过下载允许的最大尺寸" #: company/views.py:165 part/views.py:647 #, python-brace-format msgid "Invalid response: {code}" -msgstr "" +msgstr "无效响应: {code}" #: company/views.py:174 part/views.py:656 msgid "Supplied URL is not a valid image file" -msgstr "" +msgstr "提供的 URL 不是一个有效的图片文件" #: label/api.py:57 report/api.py:201 msgid "No valid objects provided to template" -msgstr "" +msgstr "没有为模板提供有效对象" #: label/models.py:113 msgid "Label name" -msgstr "" +msgstr "标签名称" #: label/models.py:120 msgid "Label description" -msgstr "" +msgstr "标签说明" #: label/models.py:127 stock/forms.py:167 msgid "Label" -msgstr "" +msgstr "标签" #: label/models.py:128 msgid "Label template file" -msgstr "" +msgstr "标签模板文件" #: label/models.py:134 report/models.py:298 msgid "Enabled" -msgstr "" +msgstr "已启用" #: label/models.py:135 msgid "Label template is enabled" -msgstr "" +msgstr "标签模板已启用" #: label/models.py:140 msgid "Width [mm]" -msgstr "" +msgstr "宽度 [mm]" #: label/models.py:141 msgid "Label width, specified in mm" -msgstr "" +msgstr "标注宽度,以毫米为单位。" #: label/models.py:147 msgid "Height [mm]" -msgstr "" +msgstr "高度 [mm]" #: label/models.py:148 msgid "Label height, specified in mm" -msgstr "" +msgstr "标注高度,以毫米为单位。" #: label/models.py:154 report/models.py:291 msgid "Filename Pattern" -msgstr "" +msgstr "文件名样式" #: label/models.py:155 msgid "Pattern for generating label filenames" @@ -2914,19 +2992,23 @@ msgstr "" #: label/models.py:258 msgid "Query filters (comma-separated list of key=value pairs)," -msgstr "" +msgstr "查询筛选器 (逗号分隔的键值对列表)" #: label/models.py:259 label/models.py:319 label/models.py:366 #: report/models.py:322 report/models.py:457 report/models.py:495 msgid "Filters" -msgstr "" +msgstr "筛选器" #: label/models.py:318 msgid "Query filters (comma-separated list of key=value pairs" -msgstr "" +msgstr "查询筛选器 (逗号分隔的键值对列表" #: label/models.py:365 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 @@ -2940,7 +3022,7 @@ msgstr "" #: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59 #: order/templates/order/sales_order_base.html:61 msgid "Cancel order" -msgstr "" +msgstr "取消订单" #: order/forms.py:74 order/templates/order/sales_order_base.html:58 msgid "Ship order" @@ -2972,26 +3054,26 @@ msgstr "" #: order/models.py:175 msgid "User or group responsible for this order" -msgstr "" +msgstr "负责此订单的用户或群组" #: order/models.py:180 msgid "Order notes" msgstr "" -#: order/models.py:247 order/models.py:534 +#: order/models.py:247 order/models.py:540 msgid "Order reference" msgstr "" -#: order/models.py:252 order/models.py:549 +#: order/models.py:252 order/models.py:555 msgid "Purchase order status" msgstr "" #: order/models.py:261 msgid "Company from which the items are being ordered" -msgstr "" +msgstr "订购该商品的公司" #: order/models.py:264 order/templates/order/order_base.html:98 -#: templates/js/translated/order.js:263 +#: templates/js/translated/order.js:337 msgid "Supplier Reference" msgstr "" @@ -3023,7 +3105,7 @@ msgstr "" msgid "Date order was completed" msgstr "" -#: order/models.py:313 stock/models.py:345 stock/models.py:1060 +#: order/models.py:313 stock/models.py:351 stock/models.py:1072 msgid "Quantity must be greater than zero" msgstr "" @@ -3031,150 +3113,182 @@ msgstr "" msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:416 +#: order/models.py:421 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:420 +#: order/models.py:425 msgid "Quantity must be an integer" -msgstr "" +msgstr "数量必须是整数" -#: order/models.py:422 +#: order/models.py:427 msgid "Quantity must be a positive number" -msgstr "" - -#: order/models.py:545 -msgid "Company to which the items are being sold" -msgstr "" +msgstr "数量必须大于0" #: order/models.py:551 +msgid "Company to which the items are being sold" +msgstr "向其出售该商品的公司" + +#: order/models.py:557 msgid "Customer Reference " msgstr "" -#: order/models.py:551 +#: order/models.py:557 msgid "Customer order reference code" msgstr "" -#: order/models.py:556 +#: order/models.py:562 msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:559 templates/js/translated/order.js:392 +#: order/models.py:565 templates/js/translated/order.js:733 msgid "Shipment Date" msgstr "" -#: order/models.py:566 +#: order/models.py:572 msgid "shipped by" msgstr "" -#: order/models.py:610 +#: order/models.py:616 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:707 +#: order/models.py:713 msgid "Item quantity" msgstr "" -#: order/models.py:713 +#: order/models.py:719 msgid "Line item reference" msgstr "" -#: order/models.py:715 +#: order/models.py:721 msgid "Line item notes" msgstr "" -#: order/models.py:745 order/models.py:823 templates/js/translated/order.js:442 +#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785 msgid "Order" msgstr "" -#: order/models.py:746 order/templates/order/order_base.html:9 +#: order/models.py:752 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 #: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:338 -#: templates/js/translated/order.js:232 templates/js/translated/stock.js:1037 -#: templates/js/translated/stock.js:1448 +#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991 +#: templates/js/translated/stock.js:1589 msgid "Purchase Order" msgstr "" -#: order/models.py:767 +#: order/models.py:773 msgid "Supplier part" -msgstr "" +msgstr "供应商商品" -#: order/models.py:770 order/templates/order/order_base.html:131 -#: order/templates/order/purchase_order_detail.html:388 +#: 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 msgid "Received" msgstr "" -#: order/models.py:770 +#: order/models.py:781 msgid "Number of items received" msgstr "" -#: order/models.py:776 part/templates/part/prices.html:157 stock/models.py:582 -#: stock/templates/stock/item_base.html:345 -#: templates/js/translated/stock.js:1081 +#: 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 msgid "Purchase Price" -msgstr "" +msgstr "采购价格" -#: order/models.py:777 +#: order/models.py:789 msgid "Unit purchase price" msgstr "" -#: order/models.py:785 +#: order/models.py:797 msgid "Where does the Purchaser want this item to be stored?" msgstr "" -#: order/models.py:831 part/templates/part/part_pricing.html:97 -#: part/templates/part/prices.html:97 part/templates/part/prices.html:266 +#: order/models.py:843 part/templates/part/part_pricing.html:112 +#: part/templates/part/prices.html:116 part/templates/part/prices.html:284 msgid "Sale Price" -msgstr "" +msgstr "销售价格" -#: order/models.py:832 +#: order/models.py:844 msgid "Unit sale price" msgstr "" -#: order/models.py:911 order/models.py:913 +#: order/models.py:923 order/models.py:925 msgid "Stock item has not been assigned" msgstr "" -#: order/models.py:917 +#: order/models.py:929 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:919 +#: order/models.py:931 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:922 +#: order/models.py:934 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:932 +#: order/models.py:944 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:937 +#: order/models.py:949 msgid "Line" msgstr "" -#: order/models.py:948 +#: order/models.py:960 msgid "Item" msgstr "" -#: order/models.py:949 +#: order/models.py:961 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:952 +#: order/models.py:964 msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:139 +#: order/serializers.py:166 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:360 +#: order/serializers.py:201 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:207 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:217 order/serializers.py:276 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:234 +msgid "Barcode Hash" +msgstr "" + +#: order/serializers.py:235 +msgid "Unique identifier field" +msgstr "" + +#: order/serializers.py:250 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:289 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:299 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:514 msgid "Sale price currency" msgstr "" @@ -3227,16 +3341,14 @@ msgid "Edit Purchase Order" msgstr "" #: order/templates/order/order_base.html:196 -#: order/templates/order/purchase_order_detail.html:265 -#: stock/templates/stock/location.html:250 +#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437 msgid "New Location" -msgstr "" +msgstr "新建仓储地点" #: order/templates/order/order_base.html:197 -#: order/templates/order/purchase_order_detail.html:266 -#: stock/templates/stock/location.html:42 +#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438 msgid "Create new stock location" -msgstr "" +msgstr "新建仓储地点" #: order/templates/order/order_cancel.html:8 msgid "Cancelling this order means that the order and line items will no longer be editable." @@ -3286,14 +3398,14 @@ msgstr "" #: part/templates/part/import_wizard/ajax_match_fields.html:28 #: part/templates/part/import_wizard/match_fields.html:35 msgid "File Fields" -msgstr "" +msgstr "文件字段" #: order/templates/order/order_wizard/match_fields.html:42 #: part/templates/part/bom_upload/match_fields.html:42 #: part/templates/part/import_wizard/ajax_match_fields.html:35 #: part/templates/part/import_wizard/match_fields.html:42 msgid "Remove column" -msgstr "" +msgstr "移除列" #: order/templates/order/order_wizard/match_fields.html:60 #: part/templates/part/bom_upload/match_fields.html:60 @@ -3311,37 +3423,37 @@ msgstr "" #: part/templates/part/import_wizard/match_fields.html:71 #: part/templates/part/import_wizard/match_references.html:49 msgid "Remove row" -msgstr "" +msgstr "移除行" #: order/templates/order/order_wizard/match_parts.html:12 #: part/templates/part/bom_upload/match_parts.html:12 #: part/templates/part/import_wizard/ajax_match_references.html:12 #: part/templates/part/import_wizard/match_references.html:12 msgid "Errors exist in the submitted data" -msgstr "" +msgstr "提交数据中存在错误" #: order/templates/order/order_wizard/match_parts.html:28 #: part/templates/part/bom_upload/match_parts.html:28 #: part/templates/part/import_wizard/ajax_match_references.html:21 #: part/templates/part/import_wizard/match_references.html:28 msgid "Row" -msgstr "" +msgstr "行" #: order/templates/order/order_wizard/match_parts.html:29 msgid "Select Supplier Part" -msgstr "" +msgstr "选择供应商商品" #: order/templates/order/order_wizard/po_upload.html:11 msgid "Upload File for Purchase Order" msgstr "" #: order/templates/order/order_wizard/po_upload.html:18 -#: part/templates/part/bom_upload/upload_file.html:24 +#: part/templates/part/bom_upload/upload_file.html:34 #: part/templates/part/import_wizard/ajax_part_upload.html:10 #: part/templates/part/import_wizard/part_upload.html:21 #, python-format msgid "Step %(step)s of %(count)s" -msgstr "" +msgstr "步骤 %(step)s / %(count)s" #: order/templates/order/order_wizard/po_upload.html:48 msgid "Order is already processed. Files cannot be uploaded." @@ -3349,33 +3461,33 @@ msgstr "" #: order/templates/order/order_wizard/select_parts.html:11 msgid "Step 1 of 2 - Select Part Suppliers" -msgstr "" +msgstr "步骤 1 / 2 - 选择商品供货商" #: order/templates/order/order_wizard/select_parts.html:16 msgid "Select suppliers" -msgstr "" +msgstr "选择供应商" #: order/templates/order/order_wizard/select_parts.html:20 msgid "No purchaseable parts selected" -msgstr "" +msgstr "未选择可购买的商品" #: order/templates/order/order_wizard/select_parts.html:33 msgid "Select Supplier" -msgstr "" +msgstr "选择供应商" #: order/templates/order/order_wizard/select_parts.html:57 msgid "No price" -msgstr "" +msgstr "暂无价格" #: order/templates/order/order_wizard/select_parts.html:65 #, python-format -msgid "Select a supplier for %(name)s" -msgstr "" +msgid "Select a supplier for %(name)s" +msgstr "为 %(name)s选择一个供应商" #: order/templates/order/order_wizard/select_parts.html:77 #: part/templates/part/set_category.html:32 msgid "Remove part" -msgstr "" +msgstr "移除商品" #: order/templates/order/order_wizard/select_pos.html:8 msgid "Step 2 of 2 - Select Purchase Orders" @@ -3386,7 +3498,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:289 templates/js/translated/order.js:397 +#: templates/js/translated/order.js:363 templates/js/translated/order.js:738 msgid "Items" msgstr "" @@ -3425,9 +3537,9 @@ msgid "Purchase Order Items" msgstr "" #: order/templates/order/purchase_order_detail.html:23 -#: order/templates/order/purchase_order_detail.html:202 +#: order/templates/order/purchase_order_detail.html:203 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:176 +#: order/templates/order/sales_order_detail.html:177 msgid "Add Line Item" msgstr "" @@ -3436,71 +3548,28 @@ msgstr "" msgid "Order Notes" msgstr "" -#: order/templates/order/purchase_order_detail.html:238 -#: order/templates/order/sales_order_detail.html:518 -msgid "Edit Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:248 -#: order/templates/order/sales_order_detail.html:528 -msgid "Delete Line Item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:279 -msgid "No line items found" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:307 -#: order/templates/order/sales_order_detail.html:353 -msgid "Total" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:360 -#: order/templates/order/sales_order_detail.html:376 -#: templates/js/translated/part.js:1128 templates/js/translated/part.js:1317 -msgid "Unit Price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:367 -#: order/templates/order/sales_order_detail.html:383 -msgid "Total price" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:431 -#: order/templates/order/sales_order_detail.html:489 -msgid "Edit line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:432 -msgid "Delete line item" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:437 -msgid "Receive line item" -msgstr "" - #: order/templates/order/purchase_orders.html:24 #: order/templates/order/sales_orders.html:24 msgid "Print Order Reports" -msgstr "" +msgstr "打印订单报表" #: order/templates/order/receive_parts.html:8 #, python-format -msgid "Receive outstanding parts for %(order)s - %(desc)s" +msgid "Receive outstanding parts for %(order)s - %(desc)s" msgstr "" -#: order/templates/order/receive_parts.html:14 part/api.py:49 -#: part/models.py:296 part/templates/part/cat_link.html:7 +#: 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:987 templates/navbar.html:23 +#: 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 "" +msgstr "商品" #: order/templates/order/receive_parts.html:15 msgid "Fill out number of parts received, the status and destination" @@ -3508,10 +3577,10 @@ msgstr "" #: order/templates/order/receive_parts.html:20 msgid "Order Code" -msgstr "" +msgstr "订单编码" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:160 templates/js/translated/part.js:802 +#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960 msgid "On Order" msgstr "" @@ -3521,7 +3590,7 @@ msgstr "" #: order/templates/order/receive_parts.html:37 msgid "Error: Referenced part has been removed" -msgstr "" +msgstr "错误:引用商品已被删除" #: order/templates/order/receive_parts.html:68 msgid "Remove line" @@ -3540,7 +3609,7 @@ msgid "Sales Order Details" msgstr "" #: order/templates/order/sales_order_base.html:100 -#: templates/js/translated/order.js:364 +#: templates/js/translated/order.js:705 msgid "Customer Reference" msgstr "" @@ -3553,7 +3622,7 @@ msgstr "" #: part/templates/part/bom_duplicate.html:12 #: stock/templates/stock/stockitem_convert.html:13 msgid "Warning" -msgstr "" +msgstr "警告" #: order/templates/order/sales_order_cancel.html:9 msgid "Cancelling this order means that the order will no longer be editable." @@ -3563,71 +3632,102 @@ msgstr "" msgid "Sales Order Items" msgstr "" -#: order/templates/order/sales_order_detail.html:225 -#: templates/js/translated/bom.js:378 templates/js/translated/build.js:759 -#: templates/js/translated/build.js:1202 +#: 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:232 -#: templates/js/translated/build.js:645 templates/js/translated/build.js:1011 +#: 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:233 -#: templates/js/translated/build.js:647 templates/js/translated/build.js:1012 +#: 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:306 +#: order/templates/order/sales_order_detail.html:307 msgid "No matching line items" msgstr "" -#: order/templates/order/sales_order_detail.html:336 +#: order/templates/order/sales_order_detail.html:337 msgid "ID" msgstr "" -#: order/templates/order/sales_order_detail.html:404 -#: templates/js/translated/build.js:710 templates/js/translated/build.js:1007 +#: 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:1343 +#: templates/js/translated/part.js:1554 +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:406 +#: order/templates/order/sales_order_detail.html:407 msgid "Fulfilled" msgstr "" -#: order/templates/order/sales_order_detail.html:443 +#: order/templates/order/sales_order_detail.html:444 msgid "PO" msgstr "" -#: order/templates/order/sales_order_detail.html:473 +#: order/templates/order/sales_order_detail.html:474 msgid "Allocate serial numbers" msgstr "" -#: order/templates/order/sales_order_detail.html:476 -#: templates/js/translated/build.js:773 +#: 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:479 +#: order/templates/order/sales_order_detail.html:480 msgid "Purchase stock" msgstr "" -#: order/templates/order/sales_order_detail.html:483 -#: templates/js/translated/build.js:766 templates/js/translated/build.js:1210 +#: 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:486 -#: order/templates/order/sales_order_detail.html:605 +#: 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:611 +#: 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 "" @@ -3673,19 +3773,19 @@ msgstr "" #: order/views.py:104 msgid "Cancel Order" -msgstr "" +msgstr "取消订单" #: order/views.py:113 order/views.py:139 msgid "Confirm order cancellation" -msgstr "" +msgstr "确认取消订单" #: order/views.py:116 order/views.py:142 msgid "Order cannot be cancelled" -msgstr "" +msgstr "无法取消订单" #: order/views.py:130 msgid "Cancel sales order" -msgstr "" +msgstr "取消销售订单" #: order/views.py:156 msgid "Issue Order" @@ -3814,22 +3914,38 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/bom.py:133 part/models.py:73 part/models.py:731 -#: part/templates/part/category.html:75 part/templates/part/part_base.html:282 -msgid "Default Location" -msgstr "" +#: part/api.py:700 +msgid "Must be greater than zero" +msgstr "必须大于0" -#: part/bom.py:134 part/templates/part/part_base.html:149 +#: part/api.py:704 +msgid "Must be a valid quantity" +msgstr "必须是有效的数量" + +#: part/api.py:719 +msgid "Specify location for initial part stock" +msgstr "指定初始初始商品仓储地点" + +#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773 +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 +msgid "Default Location" +msgstr "默认仓储地点" + +#: part/bom.py:134 part/templates/part/part_base.html:156 msgid "Available Stock" -msgstr "" +msgstr "可用库存" #: part/forms.py:63 msgid "File Format" -msgstr "" +msgstr "文件格式" #: part/forms.py:63 msgid "Select output file format" -msgstr "" +msgstr "选择输出文件格式" #: part/forms.py:65 msgid "Cascading" @@ -3841,7 +3957,7 @@ msgstr "" #: part/forms.py:67 msgid "Levels" -msgstr "" +msgstr "等级" #: part/forms.py:67 msgid "Select maximum number of BOM levels to export (0 = all levels)" @@ -3849,37 +3965,37 @@ msgstr "" #: part/forms.py:69 msgid "Include Parameter Data" -msgstr "" +msgstr "包含参数数据" #: part/forms.py:69 msgid "Include part parameters data in exported BOM" -msgstr "" +msgstr "在导出的BOM 中包含商品参数" #: part/forms.py:71 msgid "Include Stock Data" -msgstr "" +msgstr "包括库存数据" #: part/forms.py:71 msgid "Include part stock data in exported BOM" -msgstr "" +msgstr "在导出 BOM 中包括库存数据" #: part/forms.py:73 msgid "Include Manufacturer Data" -msgstr "" +msgstr "包括制造商数据" #: part/forms.py:73 msgid "Include part manufacturer data in exported BOM" -msgstr "" +msgstr "在导出 BOM 中包含制造商数据" #: part/forms.py:75 msgid "Include Supplier Data" -msgstr "" +msgstr "包含供应商数据" #: part/forms.py:75 msgid "Include part supplier data in exported BOM" -msgstr "" +msgstr "在导出 BOM 中包含供应商数据" -#: part/forms.py:96 part/models.py:2234 +#: part/forms.py:96 part/models.py:2250 msgid "Parent Part" msgstr "" @@ -3901,7 +4017,7 @@ msgstr "" #: part/forms.py:127 msgid "Confirm that the BOM is correct" -msgstr "" +msgstr "确认BOM 正确" #: part/forms.py:170 msgid "Related Part" @@ -3909,7 +4025,7 @@ msgstr "" #: part/forms.py:177 msgid "Select part category" -msgstr "" +msgstr "选择类别" #: part/forms.py:226 msgid "Add parameter template to same level categories" @@ -3923,391 +4039,391 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:74 +#: part/models.py:76 msgid "Default location for parts in this category" -msgstr "" +msgstr "此类别商品的默认仓储地点" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords" msgstr "" -#: part/models.py:77 +#: part/models.py:79 msgid "Default keywords for parts in this category" -msgstr "" +msgstr "此类别商品的默认关键字" -#: part/models.py:87 part/models.py:2280 +#: part/models.py:89 part/models.py:2296 #: part/templates/part/part_app_base.html:10 msgid "Part Category" -msgstr "" +msgstr "商品类别" -#: part/models.py:88 part/templates/part/category.html:32 +#: 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 msgid "Part Categories" -msgstr "" +msgstr "商品类别" -#: part/models.py:381 +#: part/models.py:383 msgid "Invalid choice for parent part" msgstr "" -#: part/models.py:433 part/models.py:445 +#: part/models.py:435 part/models.py:447 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" -#: part/models.py:542 +#: part/models.py:544 msgid "Next available serial numbers are" msgstr "" -#: part/models.py:546 +#: part/models.py:548 msgid "Next available serial number is" msgstr "" -#: part/models.py:551 +#: part/models.py:553 msgid "Most recent serial number is" msgstr "" -#: part/models.py:630 +#: part/models.py:632 msgid "Duplicate IPN not allowed in part settings" -msgstr "" +msgstr "在商品设置中不允许重复的IPN" -#: part/models.py:655 +#: part/models.py:657 msgid "Part name" -msgstr "" +msgstr "商品名称" -#: part/models.py:662 +#: part/models.py:664 msgid "Is Template" msgstr "" -#: part/models.py:663 +#: part/models.py:665 msgid "Is this part a template part?" msgstr "" -#: part/models.py:673 +#: part/models.py:675 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:674 +#: part/models.py:676 msgid "Variant Of" msgstr "" -#: part/models.py:680 +#: part/models.py:682 msgid "Part description" -msgstr "" +msgstr "商品描述" -#: part/models.py:685 part/templates/part/category.html:82 -#: part/templates/part/part_base.html:251 +#: part/models.py:687 part/templates/part/category.html:82 +#: part/templates/part/part_base.html:259 msgid "Keywords" -msgstr "" +msgstr "关键词" -#: part/models.py:686 +#: part/models.py:688 msgid "Part keywords to improve visibility in search results" -msgstr "" +msgstr "提高搜索结果可见性的关键字" -#: part/models.py:693 part/models.py:2279 +#: 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:773 +#: templates/js/translated/part.js:927 msgid "Category" -msgstr "" +msgstr "类别" -#: part/models.py:694 +#: part/models.py:696 msgid "Part category" -msgstr "" +msgstr "商品类别" -#: part/models.py:699 part/templates/part/part_base.html:227 -#: templates/js/translated/part.js:389 templates/js/translated/part.js:617 +#: part/models.py:701 part/templates/part/part_base.html:235 +#: templates/js/translated/part.js:528 templates/js/translated/part.js:760 msgid "IPN" msgstr "" -#: part/models.py:700 +#: part/models.py:702 msgid "Internal Part Number" -msgstr "" +msgstr "内部商品编号" -#: part/models.py:706 +#: part/models.py:708 msgid "Part revision or version number" -msgstr "" +msgstr "商品版本号" -#: part/models.py:707 part/templates/part/part_base.html:244 -#: report/models.py:200 templates/js/translated/part.js:393 +#: part/models.py:709 part/templates/part/part_base.html:252 +#: report/models.py:200 templates/js/translated/part.js:532 msgid "Revision" msgstr "" -#: part/models.py:729 +#: part/models.py:731 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:776 part/templates/part/part_base.html:289 +#: part/models.py:778 part/templates/part/part_base.html:297 msgid "Default Supplier" msgstr "" -#: part/models.py:777 +#: part/models.py:779 msgid "Default supplier part" -msgstr "" +msgstr "默认供应商商品" -#: part/models.py:784 +#: part/models.py:786 msgid "Default Expiry" msgstr "" -#: part/models.py:785 +#: part/models.py:787 msgid "Expiry time (in days) for stock items of this part" msgstr "" -#: part/models.py:790 +#: part/models.py:792 msgid "Minimum Stock" -msgstr "" +msgstr "最低库存" -#: part/models.py:791 +#: part/models.py:793 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:798 +#: part/models.py:800 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:804 +#: part/models.py:806 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:810 +#: part/models.py:812 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:816 +#: part/models.py:818 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:821 +#: part/models.py:823 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:826 +#: part/models.py:828 msgid "Can this part be sold to customers?" -msgstr "" +msgstr "此商品可以销售给客户吗?" -#: part/models.py:830 templates/js/translated/table_filters.js:21 -#: templates/js/translated/table_filters.js:69 -#: templates/js/translated/table_filters.js:255 -#: templates/js/translated/table_filters.js:324 +#: 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 msgid "Active" msgstr "" -#: part/models.py:831 +#: part/models.py:833 msgid "Is this part active?" msgstr "" -#: part/models.py:836 +#: part/models.py:838 msgid "Is this a virtual part, such as a software product or license?" -msgstr "" +msgstr "这是一个虚拟商品,如软件产品或许可证吗?" -#: part/models.py:841 +#: part/models.py:843 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "BOM checksum" msgstr "" -#: part/models.py:844 +#: part/models.py:846 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:847 +#: part/models.py:849 msgid "BOM checked by" msgstr "" -#: part/models.py:849 +#: part/models.py:851 msgid "BOM checked date" msgstr "" -#: part/models.py:853 +#: part/models.py:855 msgid "Creation User" -msgstr "" +msgstr "新建用户" -#: part/models.py:1592 +#: part/models.py:1601 msgid "Sell multiple" msgstr "" -#: part/models.py:2080 +#: part/models.py:2096 msgid "Test templates can only be created for trackable parts" msgstr "" -#: part/models.py:2097 +#: part/models.py:2113 msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2117 templates/js/translated/part.js:1038 -#: templates/js/translated/stock.js:485 +#: part/models.py:2133 templates/js/translated/part.js:1216 +#: templates/js/translated/stock.js:556 msgid "Test Name" msgstr "" -#: part/models.py:2118 +#: part/models.py:2134 msgid "Enter a name for the test" msgstr "" -#: part/models.py:2123 +#: part/models.py:2139 msgid "Test Description" msgstr "" -#: part/models.py:2124 +#: part/models.py:2140 msgid "Enter description for this test" msgstr "" -#: part/models.py:2129 templates/js/translated/part.js:1047 -#: templates/js/translated/table_filters.js:241 +#: part/models.py:2145 templates/js/translated/part.js:1225 +#: templates/js/translated/table_filters.js:254 msgid "Required" msgstr "" -#: part/models.py:2130 +#: part/models.py:2146 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2135 templates/js/translated/part.js:1055 +#: part/models.py:2151 templates/js/translated/part.js:1233 msgid "Requires Value" msgstr "" -#: part/models.py:2136 +#: part/models.py:2152 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2141 templates/js/translated/part.js:1062 +#: part/models.py:2157 templates/js/translated/part.js:1240 msgid "Requires Attachment" msgstr "" -#: part/models.py:2142 +#: part/models.py:2158 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:2153 +#: part/models.py:2169 #, python-brace-format msgid "Illegal character in template name ({c})" msgstr "" -#: part/models.py:2189 +#: part/models.py:2205 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:2197 +#: part/models.py:2213 msgid "Parameter Name" msgstr "" -#: part/models.py:2204 +#: part/models.py:2220 msgid "Parameter Units" msgstr "" -#: part/models.py:2236 part/models.py:2285 part/models.py:2286 +#: part/models.py:2252 part/models.py:2301 part/models.py:2302 #: templates/InvenTree/settings/settings.html:162 msgid "Parameter Template" -msgstr "" +msgstr "参数模板" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Data" msgstr "" -#: part/models.py:2238 +#: part/models.py:2254 msgid "Parameter Value" msgstr "" -#: part/models.py:2290 templates/InvenTree/settings/settings.html:171 +#: part/models.py:2306 templates/InvenTree/settings/settings.html:171 msgid "Default Value" -msgstr "" +msgstr "默认值" -#: part/models.py:2291 +#: part/models.py:2307 msgid "Default Parameter Value" msgstr "" -#: part/models.py:2325 +#: part/models.py:2341 msgid "Select parent part" msgstr "" -#: part/models.py:2333 +#: part/models.py:2349 msgid "Sub part" msgstr "" -#: part/models.py:2334 +#: part/models.py:2350 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:2340 +#: part/models.py:2356 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2342 templates/js/translated/bom.js:236 -#: templates/js/translated/bom.js:298 +#: part/models.py:2358 templates/js/translated/bom.js:256 +#: templates/js/translated/bom.js:314 msgid "Optional" -msgstr "" +msgstr "可选项" -#: part/models.py:2342 +#: part/models.py:2358 msgid "This BOM item is optional" msgstr "" -#: part/models.py:2345 +#: part/models.py:2361 msgid "Overage" msgstr "" -#: part/models.py:2346 +#: part/models.py:2362 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:2349 +#: part/models.py:2365 msgid "BOM item reference" msgstr "" -#: part/models.py:2352 +#: part/models.py:2368 msgid "BOM item notes" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "Checksum" msgstr "" -#: part/models.py:2354 +#: part/models.py:2370 msgid "BOM line checksum" msgstr "" -#: part/models.py:2358 templates/js/translated/bom.js:315 -#: templates/js/translated/bom.js:322 -#: templates/js/translated/table_filters.js:55 +#: part/models.py:2374 templates/js/translated/bom.js:331 +#: templates/js/translated/bom.js:338 +#: templates/js/translated/table_filters.js:68 msgid "Inherited" -msgstr "" +msgstr "继承项" -#: part/models.py:2359 +#: part/models.py:2375 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2364 templates/js/translated/bom.js:307 +#: part/models.py:2380 templates/js/translated/bom.js:323 msgid "Allow Variants" msgstr "" -#: part/models.py:2365 +#: part/models.py:2381 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:2450 stock/models.py:335 +#: part/models.py:2466 stock/models.py:341 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:2459 part/models.py:2461 +#: part/models.py:2475 part/models.py:2477 msgid "Sub part must be specified" msgstr "" -#: part/models.py:2464 +#: part/models.py:2480 msgid "BOM Item" msgstr "" -#: part/models.py:2583 +#: part/models.py:2599 msgid "Part 1" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Part 2" msgstr "" -#: part/models.py:2587 +#: part/models.py:2603 msgid "Select Related Part" msgstr "" -#: part/models.py:2619 +#: part/models.py:2635 msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique" msgstr "" @@ -4317,17 +4433,17 @@ msgstr "" #: part/templates/part/bom.html:14 #, python-format -msgid "The BOM for %(part)s has changed, and must be validated.
      " +msgid "The BOM for %(part)s has changed, and must be validated.
      " msgstr "" #: part/templates/part/bom.html:16 #, python-format -msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" +msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s" msgstr "" #: part/templates/part/bom.html:20 #, python-format -msgid "The BOM for %(part)s has not been validated." +msgid "The BOM for %(part)s has not been validated." msgstr "" #: part/templates/part/bom.html:27 @@ -4372,35 +4488,36 @@ msgstr "" #: part/templates/part/bom_upload/match_parts.html:29 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" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:7 -msgid "Upload BOM File" -msgstr "" - -#: part/templates/part/bom_upload/upload_file.html:12 +#: part/templates/part/bom_upload/upload_file.html:27 msgid "Upload Bill of Materials" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:16 +#: part/templates/part/bom_upload/upload_file.html:46 msgid "Requirements for BOM upload" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "The BOM file must contain the required named columns as provided in the " msgstr "" -#: part/templates/part/bom_upload/upload_file.html:18 +#: part/templates/part/bom_upload/upload_file.html:48 msgid "BOM Upload Template" msgstr "" -#: part/templates/part/bom_upload/upload_file.html:19 +#: part/templates/part/bom_upload/upload_file.html:49 msgid "Each part must already exist in the database" -msgstr "" +msgstr "每个商品必须已经存在于数据库" #: part/templates/part/bom_validate.html:6 #, python-format -msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" +msgid "Confirm that the Bill of Materials (BOM) is valid for:
      %(part)s" msgstr "" #: part/templates/part/bom_validate.html:9 @@ -4409,120 +4526,124 @@ msgstr "" #: part/templates/part/category.html:33 msgid "All parts" -msgstr "" +msgstr "所有商品" #: part/templates/part/category.html:38 msgid "Create new part category" -msgstr "" +msgstr "新建商品类别" #: part/templates/part/category.html:44 msgid "Edit part category" -msgstr "" +msgstr "编辑商品类别" #: part/templates/part/category.html:49 msgid "Delete part category" -msgstr "" +msgstr "删除类别" #: part/templates/part/category.html:59 part/templates/part/category.html:98 msgid "Category Details" -msgstr "" +msgstr "类别详细信息" #: part/templates/part/category.html:64 msgid "Category Path" -msgstr "" +msgstr "类别路径" #: part/templates/part/category.html:69 msgid "Category Description" -msgstr "" +msgstr "类别说明" -#: part/templates/part/category.html:88 part/templates/part/category.html:174 +#: 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 msgid "Subcategories" -msgstr "" +msgstr "子类别" #: part/templates/part/category.html:93 msgid "Parts (Including subcategories)" -msgstr "" +msgstr "商品 (包括子类别)" #: part/templates/part/category.html:126 msgid "Export Part Data" -msgstr "" +msgstr "导出商品数据" -#: part/templates/part/category.html:127 part/templates/part/category.html:141 +#: part/templates/part/category.html:127 part/templates/part/category.html:142 msgid "Export" -msgstr "" +msgstr "导出" #: part/templates/part/category.html:130 msgid "Create new part" -msgstr "" +msgstr "新建商品" #: part/templates/part/category.html:131 msgid "New Part" -msgstr "" +msgstr "新商品" #: part/templates/part/category.html:138 msgid "Set category" -msgstr "" +msgstr "设置类别" #: part/templates/part/category.html:138 msgid "Set Category" -msgstr "" +msgstr "设置类别" #: part/templates/part/category.html:141 +msgid "Print Labels" +msgstr "打印标签" + +#: part/templates/part/category.html:142 msgid "Export Data" -msgstr "" +msgstr "导出数据" -#: part/templates/part/category.html:145 +#: part/templates/part/category.html:146 msgid "View list display" -msgstr "" +msgstr "列表视图" -#: part/templates/part/category.html:148 +#: part/templates/part/category.html:149 msgid "View grid display" -msgstr "" +msgstr "网格视图" -#: part/templates/part/category.html:164 +#: part/templates/part/category.html:165 msgid "Part Parameters" -msgstr "" +msgstr "商品参数" -#: part/templates/part/category.html:253 +#: part/templates/part/category.html:254 msgid "Create Part Category" -msgstr "" +msgstr "创建商品类别" -#: part/templates/part/category.html:279 +#: part/templates/part/category.html:281 msgid "Create Part" -msgstr "" +msgstr "创建商品" #: part/templates/part/category_delete.html:5 msgid "Are you sure you want to delete category" -msgstr "" +msgstr "您确定要删除此类别吗?" #: part/templates/part/category_delete.html:8 #, python-format msgid "This category contains %(count)s child categories" -msgstr "" +msgstr "此类别包含 %(count)s 个子类别" #: part/templates/part/category_delete.html:9 msgid "If this category is deleted, these child categories will be moved to the" -msgstr "" +msgstr "如果删除此类别,则这些子类别将被移动到以下位置:" #: part/templates/part/category_delete.html:11 msgid "category" -msgstr "" +msgstr "类别" #: part/templates/part/category_delete.html:13 msgid "top level Parts category" -msgstr "" +msgstr "顶层商品类别" #: part/templates/part/category_delete.html:25 #, python-format msgid "This category contains %(count)s parts" -msgstr "" +msgstr "此类别包含 %(count)s 个商品" #: 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 "如果删除此类别,这些商品将移至其父类别 %(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" @@ -4531,11 +4652,11 @@ msgstr "" #: part/templates/part/category_navbar.html:29 #: part/templates/part/category_navbar.html:32 msgid "Import Parts" -msgstr "" +msgstr "导入商品" -#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:224 +#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363 msgid "Duplicate Part" -msgstr "" +msgstr "复制部件" #: part/templates/part/copy_part.html:10 #, python-format @@ -4554,19 +4675,19 @@ msgstr "" #: part/templates/part/create_part.html:17 #, python-format -msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" msgstr "" #: part/templates/part/detail.html:16 msgid "Part Stock" -msgstr "" +msgstr "商品库存" #: part/templates/part/detail.html:21 #, python-format -msgid "Showing stock for all variants of %(full_name)s" +msgid "Showing stock for all variants of %(full_name)s" msgstr "" -#: part/templates/part/detail.html:30 part/templates/part/navbar.html:87 +#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99 msgid "Part Test Templates" msgstr "" @@ -4586,7 +4707,7 @@ msgstr "" msgid "Sales Order Allocations" msgstr "" -#: part/templates/part/detail.html:130 part/templates/part/navbar.html:21 +#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27 msgid "Part Variants" msgstr "" @@ -4602,8 +4723,8 @@ msgstr "" msgid "Add new parameter" msgstr "" -#: part/templates/part/detail.html:182 part/templates/part/navbar.html:95 -#: part/templates/part/navbar.html:98 +#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107 +#: part/templates/part/navbar.html:110 msgid "Related Parts" msgstr "" @@ -4611,8 +4732,8 @@ msgstr "" msgid "Add Related" msgstr "" -#: part/templates/part/detail.html:228 part/templates/part/navbar.html:35 -#: part/templates/part/navbar.html:38 +#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43 +#: part/templates/part/navbar.html:46 msgid "Bill of Materials" msgstr "" @@ -4634,60 +4755,52 @@ msgstr "" #: part/templates/part/detail.html:283 msgid "Part Suppliers" -msgstr "" +msgstr "商品供应商" #: part/templates/part/detail.html:305 msgid "Part Manufacturers" -msgstr "" +msgstr "商品制造商" #: part/templates/part/detail.html:317 msgid "Delete manufacturer parts" -msgstr "" +msgstr "删除制造商商品" -#: part/templates/part/detail.html:402 +#: part/templates/part/detail.html:502 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:403 +#: part/templates/part/detail.html:503 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:454 +#: part/templates/part/detail.html:554 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:589 +#: part/templates/part/detail.html:698 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:607 -msgid "Edit Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:619 -msgid "Delete Test Result Template" -msgstr "" - -#: part/templates/part/detail.html:670 +#: part/templates/part/detail.html:754 msgid "Edit Part Notes" -msgstr "" +msgstr "编辑商品注释" -#: part/templates/part/detail.html:903 +#: part/templates/part/detail.html:906 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:915 +#: part/templates/part/detail.html:918 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:927 +#: part/templates/part/detail.html:930 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1016 +#: part/templates/part/detail.html:1019 #, python-format msgid "Unit Price - %(currency)s" msgstr "" @@ -4699,170 +4812,171 @@ msgstr "" #: part/templates/part/import_wizard/part_upload.html:14 msgid "Import Parts from File" -msgstr "" +msgstr "从文件导入商品" -#: part/templates/part/navbar.html:24 +#: part/templates/part/navbar.html:30 msgid "Variants" msgstr "" -#: part/templates/part/navbar.html:51 part/templates/part/navbar.html:54 +#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62 msgid "Used In" msgstr "" -#: part/templates/part/navbar.html:61 +#: part/templates/part/navbar.html:70 msgid "Prices" msgstr "" -#: part/templates/part/navbar.html:90 +#: part/templates/part/navbar.html:102 msgid "Test Templates" msgstr "" #: part/templates/part/part_app_base.html:12 msgid "Part List" -msgstr "" +msgstr "商品列表" -#: part/templates/part/part_base.html:30 +#: part/templates/part/part_base.html:35 msgid "Part is a template part (variants can be made from this part)" msgstr "" -#: part/templates/part/part_base.html:33 +#: part/templates/part/part_base.html:38 msgid "Part can be assembled from other parts" -msgstr "" +msgstr "商品可以由其他部件组装" -#: part/templates/part/part_base.html:36 +#: part/templates/part/part_base.html:41 msgid "Part can be used in assemblies" -msgstr "" +msgstr "商品可以用于组装成品" -#: part/templates/part/part_base.html:39 +#: part/templates/part/part_base.html:44 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/part_base.html:42 +#: part/templates/part/part_base.html:47 msgid "Part can be purchased from external suppliers" -msgstr "" +msgstr "商品可以从外部供应商处购买" -#: part/templates/part/part_base.html:45 +#: part/templates/part/part_base.html:50 msgid "Part can be sold to customers" -msgstr "" +msgstr "商品可以销售给客户" -#: part/templates/part/part_base.html:52 part/templates/part/part_base.html:60 +#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65 msgid "Part is virtual (not a physical part)" -msgstr "" +msgstr "商品是虚拟的(不是实体零件)" -#: part/templates/part/part_base.html:53 templates/js/translated/company.js:454 -#: templates/js/translated/company.js:704 templates/js/translated/part.js:304 -#: templates/js/translated/part.js:381 +#: 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:68 +#: part/templates/part/part_base.html:73 msgid "Star this part" -msgstr "" +msgstr "标记此商品" -#: part/templates/part/part_base.html:75 +#: part/templates/part/part_base.html:80 #: stock/templates/stock/item_base.html:75 #: stock/templates/stock/location.html:51 msgid "Barcode actions" msgstr "" -#: part/templates/part/part_base.html:77 +#: 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 msgid "Show QR Code" msgstr "" -#: part/templates/part/part_base.html:78 +#: part/templates/part/part_base.html:83 #: stock/templates/stock/item_base.html:93 #: stock/templates/stock/location.html:54 msgid "Print Label" -msgstr "" +msgstr "打印标签" -#: part/templates/part/part_base.html:83 +#: part/templates/part/part_base.html:89 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:88 +#: part/templates/part/part_base.html:95 #: stock/templates/stock/item_base.html:142 #: stock/templates/stock/location.html:62 msgid "Stock actions" msgstr "" -#: part/templates/part/part_base.html:95 +#: part/templates/part/part_base.html:102 msgid "Count part stock" -msgstr "" +msgstr "清点商品库存" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:108 msgid "Transfer part stock" msgstr "" -#: part/templates/part/part_base.html:118 +#: part/templates/part/part_base.html:125 msgid "Part actions" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:128 msgid "Duplicate part" -msgstr "" +msgstr "重复的商品" -#: part/templates/part/part_base.html:124 +#: part/templates/part/part_base.html:131 msgid "Edit part" -msgstr "" +msgstr "编辑商品" -#: part/templates/part/part_base.html:127 +#: part/templates/part/part_base.html:134 msgid "Delete part" -msgstr "" +msgstr "删除商品" -#: part/templates/part/part_base.html:139 +#: part/templates/part/part_base.html:146 #, python-format msgid "This part is a variant of %(link)s" msgstr "" -#: part/templates/part/part_base.html:154 -#: templates/js/translated/table_filters.js:153 +#: part/templates/part/part_base.html:161 +#: templates/js/translated/table_filters.js:166 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:167 templates/InvenTree/index.html:186 +#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186 msgid "Required for Build Orders" msgstr "" -#: part/templates/part/part_base.html:174 +#: part/templates/part/part_base.html:181 msgid "Required for Sales Orders" msgstr "" -#: part/templates/part/part_base.html:181 +#: part/templates/part/part_base.html:188 msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:196 templates/js/translated/bom.js:336 +#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:202 templates/js/translated/part.js:633 -#: templates/js/translated/part.js:806 +#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776 +#: templates/js/translated/part.js:964 msgid "Building" msgstr "" -#: part/templates/part/part_base.html:275 +#: part/templates/part/part_base.html:223 +#: part/templates/part/part_base.html:525 +#: part/templates/part/part_base.html:551 +msgid "Show Part Details" +msgstr "显示商品详细信息" + +#: part/templates/part/part_base.html:283 msgid "Latest Serial Number" msgstr "" -#: part/templates/part/part_base.html:383 part/templates/part/prices.html:125 +#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144 msgid "Calculate" msgstr "" -#: part/templates/part/part_base.html:426 +#: part/templates/part/part_base.html:439 msgid "No matching images found" msgstr "" -#: part/templates/part/part_base.html:506 -#: part/templates/part/part_base.html:531 +#: part/templates/part/part_base.html:520 +#: part/templates/part/part_base.html:545 msgid "Hide Part Details" -msgstr "" - -#: part/templates/part/part_base.html:511 -#: part/templates/part/part_base.html:537 -msgid "Show Part Details" -msgstr "" +msgstr "隐藏商品详细信息" #: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21 msgid "Supplier Pricing" @@ -4870,79 +4984,94 @@ msgstr "" #: part/templates/part/part_pricing.html:26 #: part/templates/part/part_pricing.html:52 -#: part/templates/part/part_pricing.html:85 -#: part/templates/part/part_pricing.html:100 part/templates/part/prices.html:25 -#: part/templates/part/prices.html:52 part/templates/part/prices.html:84 -#: part/templates/part/prices.html:101 +#: part/templates/part/part_pricing.html:100 +#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25 +#: part/templates/part/prices.html:52 part/templates/part/prices.html:103 +#: part/templates/part/prices.html:120 msgid "Unit Cost" msgstr "" #: part/templates/part/part_pricing.html:32 #: part/templates/part/part_pricing.html:58 -#: part/templates/part/part_pricing.html:89 -#: part/templates/part/part_pricing.html:104 part/templates/part/prices.html:32 -#: part/templates/part/prices.html:59 part/templates/part/prices.html:89 -#: part/templates/part/prices.html:106 +#: part/templates/part/part_pricing.html:104 +#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32 +#: part/templates/part/prices.html:59 part/templates/part/prices.html:108 +#: part/templates/part/prices.html:125 msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:291 +#: templates/js/translated/bom.js:307 msgid "No supplier pricing available" msgstr "" #: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49 -#: part/templates/part/prices.html:225 +#: part/templates/part/prices.html:243 msgid "BOM Pricing" msgstr "" -#: part/templates/part/part_pricing.html:66 part/templates/part/prices.html:67 -msgid "Note: BOM pricing is incomplete for this part" +#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69 +msgid "Unit Purchase Price" msgstr "" -#: part/templates/part/part_pricing.html:73 part/templates/part/prices.html:74 +#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86 +msgid "Note: BOM pricing is incomplete for this part" +msgstr "注:此商品BOM价格不完整。" + +#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93 msgid "No BOM pricing available" msgstr "" -#: part/templates/part/part_pricing.html:82 part/templates/part/prices.html:83 +#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102 msgid "Internal Price" msgstr "" -#: part/templates/part/part_pricing.html:113 -#: part/templates/part/prices.html:115 +#: part/templates/part/part_pricing.html:128 +#: part/templates/part/prices.html:134 msgid "No pricing information is available for this part." -msgstr "" +msgstr "此商品无价格信息可用。" #: part/templates/part/part_thumb.html:20 msgid "Select from existing images" msgstr "" -#: part/templates/part/partial_delete.html:7 +#: part/templates/part/partial_delete.html:9 #, python-format -msgid "Are you sure you want to delete part '%(full_name)s'?" +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:12 +#: part/templates/part/partial_delete.html:17 +#, python-format +msgid "Are you sure you want to delete part '%(full_name)s'?" +msgstr "您确定要删除商品 '%(full_name)s '吗?" + +#: 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 "" @@ -4963,62 +5092,62 @@ msgstr "" msgid "Show BOM cost" msgstr "" -#: part/templates/part/prices.html:98 +#: part/templates/part/prices.html:117 msgid "Show sale cost" msgstr "" -#: part/templates/part/prices.html:99 +#: part/templates/part/prices.html:118 msgid "Show sale price" msgstr "" -#: part/templates/part/prices.html:121 +#: part/templates/part/prices.html:140 msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:136 templates/js/translated/bom.js:285 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301 msgid "Supplier Cost" msgstr "" -#: part/templates/part/prices.html:137 part/templates/part/prices.html:158 -#: part/templates/part/prices.html:183 part/templates/part/prices.html:213 -#: part/templates/part/prices.html:239 part/templates/part/prices.html:267 +#: part/templates/part/prices.html:156 part/templates/part/prices.html:177 +#: part/templates/part/prices.html:201 part/templates/part/prices.html:231 +#: part/templates/part/prices.html:257 part/templates/part/prices.html:285 msgid "Jump to overview" msgstr "" -#: part/templates/part/prices.html:162 +#: part/templates/part/prices.html:181 msgid "Stock Pricing" msgstr "" -#: part/templates/part/prices.html:172 +#: part/templates/part/prices.html:190 msgid "No stock pricing history is available for this part." msgstr "" -#: part/templates/part/prices.html:182 +#: part/templates/part/prices.html:200 msgid "Internal Cost" msgstr "" -#: part/templates/part/prices.html:197 part/views.py:1793 +#: part/templates/part/prices.html:215 part/views.py:1801 msgid "Add Internal Price Break" msgstr "" -#: part/templates/part/prices.html:212 +#: part/templates/part/prices.html:230 msgid "BOM Cost" msgstr "" -#: part/templates/part/prices.html:238 +#: part/templates/part/prices.html:256 msgid "Sale Cost" msgstr "" -#: part/templates/part/prices.html:278 +#: part/templates/part/prices.html:296 msgid "No sale pice history available for this part." msgstr "" #: part/templates/part/set_category.html:9 msgid "Set category for the following parts" -msgstr "" +msgstr "为以下商品设置类别" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:259 -#: templates/js/translated/part.js:623 templates/js/translated/part.js:810 +#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278 +#: templates/js/translated/part.js:766 templates/js/translated/part.js:968 msgid "No Stock" msgstr "" @@ -5032,10 +5161,10 @@ msgstr "" #: part/templates/part/variant_part.html:10 #, python-format -msgid "Create a new variant of template '%(full_name)s'." +msgid "Create a new variant of template '%(full_name)s'." msgstr "" -#: part/templatetags/inventree_extras.py:105 +#: part/templatetags/inventree_extras.py:106 msgid "Unknown database" msgstr "" @@ -5049,12 +5178,12 @@ msgstr "" #: part/views.py:160 msgid "Set Part Category" -msgstr "" +msgstr "设置商品类别" #: part/views.py:210 #, python-brace-format msgid "Set category for {n} parts" -msgstr "" +msgstr "为 {n} 个商品设置类别" #: part/views.py:270 msgid "Match References" @@ -5066,19 +5195,19 @@ msgstr "" #: part/views.py:585 msgid "Part QR Code" -msgstr "" +msgstr "商品二维码" #: part/views.py:687 msgid "Select Part Image" -msgstr "" +msgstr "选择商品图像" #: part/views.py:713 msgid "Updated part image" -msgstr "" +msgstr "更新商品图像" #: part/views.py:716 msgid "Part image not found" -msgstr "" +msgstr "未找到商品图像" #: part/views.py:728 msgid "Duplicate BOM" @@ -5102,65 +5231,65 @@ msgstr "" #: part/views.py:884 msgid "Match Parts" -msgstr "" +msgstr "匹配商品" #: part/views.py:1272 msgid "Confirm Part Deletion" -msgstr "" +msgstr "确认删除商品" #: part/views.py:1279 msgid "Part was deleted" -msgstr "" +msgstr "商品已删除" #: part/views.py:1288 msgid "Part Pricing" -msgstr "" +msgstr "商品价格" -#: part/views.py:1429 +#: part/views.py:1437 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1439 +#: part/views.py:1447 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1446 +#: part/views.py:1454 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1494 templates/js/translated/part.js:179 +#: part/views.py:1502 templates/js/translated/part.js:308 msgid "Edit Part Category" -msgstr "" +msgstr "编辑商品类别" -#: part/views.py:1532 +#: part/views.py:1540 msgid "Delete Part Category" -msgstr "" +msgstr "删除商品类别" -#: part/views.py:1538 +#: part/views.py:1546 msgid "Part category was deleted" -msgstr "" +msgstr "商品类别已删除" -#: part/views.py:1547 +#: part/views.py:1555 msgid "Create Category Parameter Template" -msgstr "" +msgstr "创建类别参数模板" -#: part/views.py:1648 +#: part/views.py:1656 msgid "Edit Category Parameter Template" -msgstr "" +msgstr "编辑类别参数模板" -#: part/views.py:1704 +#: part/views.py:1712 msgid "Delete Category Parameter Template" -msgstr "" +msgstr "删除类别参数模板" -#: part/views.py:1726 +#: part/views.py:1734 msgid "Added new price break" msgstr "" -#: part/views.py:1802 +#: part/views.py:1810 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1818 msgid "Delete Internal Price Break" msgstr "" @@ -5210,7 +5339,7 @@ msgstr "" #: report/models.py:423 msgid "Part Filters" -msgstr "" +msgstr "商品过滤器" #: report/models.py:424 msgid "Part query filters (comma-separated list of key=value pairs" @@ -5266,17 +5395,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1796 +#: stock/models.py:1804 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1802 +#: stock/models.py:1810 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:92 -#: templates/js/translated/order.js:279 templates/js/translated/stock.js:1382 +#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523 msgid "Date" msgstr "" @@ -5288,51 +5417,51 @@ msgstr "" msgid "Fail" msgstr "" -#: stock/api.py:145 +#: stock/api.py:157 msgid "Request must contain list of stock items" msgstr "" -#: stock/api.py:153 +#: stock/api.py:165 msgid "Improperly formatted data" msgstr "" -#: stock/api.py:161 +#: stock/api.py:173 msgid "Each entry must contain a valid integer primary-key" msgstr "" -#: stock/api.py:167 +#: stock/api.py:179 msgid "Primary key does not match valid stock item" msgstr "" -#: stock/api.py:177 +#: stock/api.py:189 msgid "Invalid quantity value" msgstr "" -#: stock/api.py:182 +#: stock/api.py:194 msgid "Quantity must not be less than zero" msgstr "" -#: stock/api.py:210 +#: stock/api.py:222 #, python-brace-format msgid "Updated stock for {n} items" msgstr "" -#: stock/api.py:246 stock/api.py:279 +#: stock/api.py:258 stock/api.py:291 msgid "Specified quantity exceeds stock quantity" msgstr "" -#: stock/api.py:269 +#: stock/api.py:281 msgid "Valid location must be specified" msgstr "" -#: stock/api.py:289 +#: stock/api.py:301 #, python-brace-format msgid "Moved {n} parts to {loc}" msgstr "" -#: stock/forms.py:79 stock/forms.py:307 stock/models.py:550 +#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556 #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1025 +#: templates/js/translated/stock.js:967 msgid "Expiry Date" msgstr "" @@ -5384,258 +5513,266 @@ msgstr "" msgid "Confirm removal of installed stock items" msgstr "" -#: stock/models.py:57 stock/models.py:587 +#: stock/models.py:57 stock/models.py:593 msgid "Owner" msgstr "" -#: stock/models.py:58 stock/models.py:588 +#: stock/models.py:58 stock/models.py:594 msgid "Select Owner" msgstr "" -#: stock/models.py:316 +#: stock/models.py:322 msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:352 +#: stock/models.py:358 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" -msgstr "" +msgstr "商品类型 ('{pf}') 必须是 {pe}" -#: stock/models.py:362 stock/models.py:371 +#: stock/models.py:368 stock/models.py:377 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:363 +#: stock/models.py:369 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:385 +#: stock/models.py:391 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:391 +#: stock/models.py:397 msgid "Item must have a build reference if is_building=True" msgstr "" -#: stock/models.py:398 +#: stock/models.py:404 msgid "Build reference does not point to the same part object" msgstr "" -#: stock/models.py:440 +#: stock/models.py:446 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:449 +#: stock/models.py:455 msgid "Base part" msgstr "" -#: stock/models.py:458 +#: stock/models.py:464 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:463 stock/templates/stock/stock_app_base.html:8 +#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8 msgid "Stock Location" -msgstr "" +msgstr "仓储地点" -#: stock/models.py:466 +#: stock/models.py:472 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:473 +#: stock/models.py:479 msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:478 stock/templates/stock/item_base.html:284 +#: stock/models.py:484 stock/templates/stock/item_base.html:284 msgid "Installed In" msgstr "" -#: stock/models.py:481 +#: stock/models.py:487 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:497 +#: stock/models.py:503 msgid "Serial number for this item" msgstr "" -#: stock/models.py:509 +#: stock/models.py:515 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:513 +#: stock/models.py:519 msgid "Stock Quantity" msgstr "" -#: stock/models.py:522 +#: stock/models.py:528 msgid "Source Build" msgstr "" -#: stock/models.py:524 +#: stock/models.py:530 msgid "Build for this stock item" msgstr "" -#: stock/models.py:535 +#: stock/models.py:541 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:538 +#: stock/models.py:544 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:544 +#: stock/models.py:550 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:551 +#: stock/models.py:557 msgid "Expiry date for stock item. Stock will be considered expired after this date" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete on deplete" msgstr "" -#: stock/models.py:564 +#: stock/models.py:570 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:574 stock/templates/stock/item.html:98 +#: stock/models.py:580 stock/templates/stock/item.html:99 #: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:583 +#: stock/models.py:589 msgid "Single unit purchase price at time of purchase" msgstr "" -#: stock/models.py:1051 -msgid "Part is not set as trackable" +#: stock/models.py:599 +msgid "Scheduled for deletion" msgstr "" -#: stock/models.py:1057 -msgid "Quantity must be integer" +#: stock/models.py:600 +msgid "This StockItem will be deleted by the background worker" msgstr "" #: stock/models.py:1063 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1069 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1075 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:1066 +#: stock/models.py:1078 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:1069 +#: stock/models.py:1081 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:1076 +#: stock/models.py:1088 #, python-brace-format msgid "Serial numbers already exist: {exists}" msgstr "" -#: stock/models.py:1234 +#: stock/models.py:1246 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:1716 +#: stock/models.py:1724 msgid "Entry notes" msgstr "" -#: stock/models.py:1773 +#: stock/models.py:1781 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:1779 +#: stock/models.py:1787 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:1797 +#: stock/models.py:1805 msgid "Test name" msgstr "" -#: stock/models.py:1803 templates/js/translated/table_filters.js:231 +#: stock/models.py:1811 templates/js/translated/table_filters.js:244 msgid "Test result" msgstr "" -#: stock/models.py:1809 +#: stock/models.py:1817 msgid "Test output value" msgstr "" -#: stock/models.py:1816 +#: stock/models.py:1824 msgid "Test result attachment" msgstr "" -#: stock/models.py:1822 +#: stock/models.py:1830 msgid "Test notes" msgstr "" -#: stock/templates/stock/item.html:16 +#: stock/templates/stock/item.html:17 msgid "Stock Tracking Information" msgstr "" -#: stock/templates/stock/item.html:29 +#: stock/templates/stock/item.html:30 msgid "New Entry" msgstr "" -#: stock/templates/stock/item.html:42 +#: stock/templates/stock/item.html:43 msgid "Child Stock Items" msgstr "" -#: stock/templates/stock/item.html:49 +#: stock/templates/stock/item.html:50 msgid "This stock item does not have any child items" msgstr "" -#: stock/templates/stock/item.html:57 stock/templates/stock/navbar.html:19 +#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19 #: stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "" -#: stock/templates/stock/item.html:65 +#: stock/templates/stock/item.html:66 msgid "Delete Test Data" msgstr "" -#: stock/templates/stock/item.html:69 +#: stock/templates/stock/item.html:70 msgid "Add Test Data" msgstr "" -#: stock/templates/stock/item.html:72 stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95 msgid "Test Report" msgstr "" -#: stock/templates/stock/item.html:119 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "" -#: stock/templates/stock/item.html:124 stock/views.py:534 +#: stock/templates/stock/item.html:125 stock/views.py:534 msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:299 stock/templates/stock/item.html:324 +#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:344 +#: stock/templates/stock/item.html:346 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:358 +#: stock/templates/stock/item.html:360 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:212 +#: 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:218 +#: templates/js/translated/table_filters.js:231 msgid "Stale" msgstr "" #: stock/templates/stock/item_base.html:80 -#: templates/js/translated/barcode.js:309 -#: templates/js/translated/barcode.js:314 +#: templates/js/translated/barcode.js:331 +#: templates/js/translated/barcode.js:336 msgid "Unlink Barcode" msgstr "" @@ -5723,7 +5860,7 @@ msgstr "" #: stock/templates/stock/item_base.html:180 msgid "This stock item is in production and cannot be edited." -msgstr "" +msgstr "此库存项目正在生产中,无法编辑。" #: stock/templates/stock/item_base.html:181 msgid "Edit the stock item from the build view." @@ -5768,9 +5905,9 @@ msgid "next page" msgstr "" #: stock/templates/stock/item_base.html:303 -#: templates/js/translated/build.js:628 +#: templates/js/translated/build.js:651 msgid "No location set" -msgstr "" +msgstr "未设置仓储地点" #: stock/templates/stock/item_base.html:310 msgid "Barcode Identifier" @@ -5795,7 +5932,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:408 -#: templates/js/translated/stock.js:1032 +#: templates/js/translated/stock.js:980 msgid "Last Updated" msgstr "" @@ -5825,7 +5962,7 @@ msgstr "" #: stock/templates/stock/item_delete.html:12 #, python-format -msgid "This will remove %(qty)s units of %(full_name)s from stock." +msgid "This will remove %(qty)s units of %(full_name)s from stock." msgstr "" #: stock/templates/stock/item_install.html:8 @@ -5871,7 +6008,7 @@ 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 "" +msgstr "您不在此仓储地的所有者列表中,无法编辑此仓储地。" #: stock/templates/stock/location.html:37 msgid "All stock items" @@ -5883,27 +6020,27 @@ msgstr "" #: stock/templates/stock/location.html:83 msgid "Location actions" -msgstr "" +msgstr "仓储地操作" #: stock/templates/stock/location.html:85 msgid "Edit location" -msgstr "" +msgstr "编辑仓储地" #: stock/templates/stock/location.html:87 msgid "Delete location" -msgstr "" +msgstr "删除仓储地" #: stock/templates/stock/location.html:99 msgid "Location Details" -msgstr "" +msgstr "仓储地详细信息" #: stock/templates/stock/location.html:104 msgid "Location Path" -msgstr "" +msgstr "仓储地路径" #: stock/templates/stock/location.html:109 msgid "Location Description" -msgstr "" +msgstr "仓储地描述信息" #: stock/templates/stock/location.html:114 #: stock/templates/stock/location.html:155 @@ -5916,26 +6053,26 @@ msgstr "" msgid "Stock Details" msgstr "" -#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279 +#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196 #: templates/stats.html:97 users/models.py:42 msgid "Stock Locations" -msgstr "" +msgstr "仓储地点" #: stock/templates/stock/location.html:162 templates/stock_table.html:37 msgid "Printing Actions" -msgstr "" +msgstr "打印操作" #: stock/templates/stock/location.html:166 templates/stock_table.html:41 msgid "Print labels" -msgstr "" +msgstr "打印标签" #: stock/templates/stock/location.html:251 msgid "Create new location" -msgstr "" +msgstr "新建仓储地点" #: stock/templates/stock/location_delete.html:7 msgid "Are you sure you want to delete this stock location?" -msgstr "" +msgstr "确实要删除此仓储地点吗?" #: stock/templates/stock/navbar.html:11 msgid "Stock Item Tracking" @@ -5975,7 +6112,7 @@ msgstr "" #: stock/templates/stock/stockitem_convert.html:8 #, python-format -msgid "This stock item is current an instance of %(part)s" +msgid "This stock item is current an instance of %(part)s" msgstr "" #: stock/templates/stock/stockitem_convert.html:9 @@ -5992,7 +6129,7 @@ msgstr "" #: stock/views.py:181 msgid "Edit Stock Location" -msgstr "" +msgstr "编辑仓储地点" #: stock/views.py:288 stock/views.py:911 stock/views.py:1033 #: stock/views.py:1398 @@ -6001,7 +6138,7 @@ msgstr "" #: stock/views.py:303 msgid "Stock Location QR code" -msgstr "" +msgstr "仓储地点二维码" #: stock/views.py:322 msgid "Assign to Customer" @@ -6017,7 +6154,7 @@ msgstr "" #: stock/views.py:364 msgid "Specify a valid location" -msgstr "" +msgstr "指定一个有效仓储地点" #: stock/views.py:375 msgid "Stock item returned from customer" @@ -6039,7 +6176,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:780 templates/js/translated/stock.js:282 +#: stock/views.py:780 templates/js/translated/stock.js:353 msgid "Confirm stock adjustment" msgstr "" @@ -6053,13 +6190,13 @@ msgstr "" #: stock/views.py:959 msgid "Create new Stock Location" -msgstr "" +msgstr "新建仓储地点" #: stock/views.py:1050 msgid "Serialize Stock" msgstr "" -#: stock/views.py:1143 templates/js/translated/build.js:365 +#: stock/views.py:1143 templates/js/translated/build.js:392 msgid "Create new Stock Item" msgstr "" @@ -6073,7 +6210,7 @@ msgstr "" #: stock/views.py:1467 msgid "Delete Stock Location" -msgstr "" +msgstr "删除仓储地点" #: stock/views.py:1480 msgid "Delete Stock Item" @@ -6113,11 +6250,11 @@ msgstr "" #: templates/InvenTree/index.html:105 msgid "Starred Parts" -msgstr "" +msgstr "已加星标商品" #: templates/InvenTree/index.html:115 msgid "Latest Parts" -msgstr "" +msgstr "最近商品" #: templates/InvenTree/index.html:126 msgid "BOM Waiting Validation" @@ -6171,49 +6308,41 @@ msgstr "" msgid "Enter a search query" msgstr "" -#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:629 -msgid "Shipped to customer" -msgstr "" - -#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:639 -msgid "No stock location set" -msgstr "" - #: templates/InvenTree/settings/barcode.html:8 msgid "Barcode Settings" -msgstr "" +msgstr "条形码设置" #: templates/InvenTree/settings/build.html:8 msgid "Build Order Settings" -msgstr "" +msgstr "生产订单设置" #: templates/InvenTree/settings/category.html:7 msgid "Category Settings" -msgstr "" +msgstr "类别设置" #: templates/InvenTree/settings/currencies.html:8 msgid "Currency Settings" -msgstr "" +msgstr "货币设置" #: templates/InvenTree/settings/currencies.html:23 msgid "Base Currency" -msgstr "" +msgstr "基础货币" #: templates/InvenTree/settings/currencies.html:27 msgid "Exchange Rates" -msgstr "" +msgstr "汇率" #: templates/InvenTree/settings/currencies.html:37 msgid "Last Update" -msgstr "" +msgstr "上次更新" #: templates/InvenTree/settings/currencies.html:43 msgid "Never" -msgstr "" +msgstr "从不" #: templates/InvenTree/settings/currencies.html:48 msgid "Update Now" -msgstr "" +msgstr "立即更新" #: templates/InvenTree/settings/global.html:9 msgid "Server Settings" @@ -6221,49 +6350,49 @@ msgstr "" #: templates/InvenTree/settings/header.html:7 msgid "Setting" -msgstr "" +msgstr "设置" #: templates/InvenTree/settings/navbar.html:12 #: templates/InvenTree/settings/user_settings.html:9 msgid "User Settings" -msgstr "" +msgstr "用户设置" #: templates/InvenTree/settings/navbar.html:15 #: templates/InvenTree/settings/navbar.html:17 msgid "Account" -msgstr "" +msgstr "帐户" #: templates/InvenTree/settings/navbar.html:21 #: templates/InvenTree/settings/navbar.html:23 msgid "Home Page" -msgstr "" +msgstr "主页" #: templates/InvenTree/settings/navbar.html:27 #: templates/InvenTree/settings/navbar.html:29 -#: templates/js/translated/tables.js:351 templates/search_form.html:6 +#: templates/js/translated/tables.js:375 templates/search_form.html:6 #: templates/search_form.html:8 msgid "Search" -msgstr "" +msgstr "搜索" #: templates/InvenTree/settings/navbar.html:33 #: templates/InvenTree/settings/navbar.html:35 msgid "Labels" -msgstr "" +msgstr "标签" #: templates/InvenTree/settings/navbar.html:39 #: templates/InvenTree/settings/navbar.html:41 msgid "Reports" -msgstr "" +msgstr "报表" #: templates/InvenTree/settings/navbar.html:46 #: templates/InvenTree/settings/navbar.html:48 -#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:84 +#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90 msgid "Settings" -msgstr "" +msgstr "设置" #: templates/InvenTree/settings/navbar.html:56 msgid "InvenTree Settings" -msgstr "" +msgstr "InventTree 设置" #: templates/InvenTree/settings/navbar.html:59 #: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9 @@ -6273,160 +6402,161 @@ msgstr "" #: templates/InvenTree/settings/navbar.html:65 #: templates/InvenTree/settings/navbar.html:67 msgid "Barcodes" -msgstr "" +msgstr "条形码" #: templates/InvenTree/settings/navbar.html:71 #: templates/InvenTree/settings/navbar.html:73 msgid "Currencies" -msgstr "" +msgstr "币种" #: templates/InvenTree/settings/navbar.html:77 #: templates/InvenTree/settings/navbar.html:79 msgid "Reporting" -msgstr "" +msgstr "报表" #: templates/InvenTree/settings/navbar.html:89 #: templates/InvenTree/settings/navbar.html:91 msgid "Categories" -msgstr "" +msgstr "类别管理" #: templates/InvenTree/settings/part.html:7 msgid "Part Settings" -msgstr "" +msgstr "商品设置" #: templates/InvenTree/settings/part.html:12 msgid "Part Options" -msgstr "" +msgstr "商品选项" #: templates/InvenTree/settings/part.html:43 msgid "Part Import" -msgstr "" +msgstr "商品导入" #: templates/InvenTree/settings/part.html:46 msgid "Import Part" -msgstr "" +msgstr "导入商品" #: templates/InvenTree/settings/part.html:59 msgid "Part Parameter Templates" -msgstr "" +msgstr "商品参数模板" #: templates/InvenTree/settings/po.html:9 msgid "Purchase Order Settings" -msgstr "" +msgstr "采购订单设置" #: templates/InvenTree/settings/report.html:10 #: templates/InvenTree/settings/user_reports.html:9 msgid "Report Settings" -msgstr "" +msgstr "报表设置" #: templates/InvenTree/settings/setting.html:29 msgid "No value set" -msgstr "" +msgstr "未设置值" #: templates/InvenTree/settings/setting.html:41 msgid "Edit setting" -msgstr "" +msgstr "编辑设置" #: templates/InvenTree/settings/settings.html:152 msgid "No category parameter templates found" -msgstr "" +msgstr "未找到类别参数模板" #: templates/InvenTree/settings/settings.html:174 -#: templates/InvenTree/settings/settings.html:271 +#: templates/InvenTree/settings/settings.html:273 msgid "Edit Template" -msgstr "" +msgstr "编辑模板" #: templates/InvenTree/settings/settings.html:175 -#: templates/InvenTree/settings/settings.html:272 +#: templates/InvenTree/settings/settings.html:274 msgid "Delete Template" -msgstr "" +msgstr "删除模板" -#: templates/InvenTree/settings/settings.html:251 +#: templates/InvenTree/settings/settings.html:253 msgid "No part parameter templates found" -msgstr "" +msgstr "未找到商品参数模板" #: templates/InvenTree/settings/so.html:7 msgid "Sales Order Settings" -msgstr "" +msgstr "销售订单设置" #: templates/InvenTree/settings/stock.html:7 msgid "Stock Settings" -msgstr "" +msgstr "库存设置" #: templates/InvenTree/settings/user.html:9 msgid "Account Settings" -msgstr "" +msgstr "帐户设置" #: templates/InvenTree/settings/user.html:15 +#: templates/js/translated/helpers.js:26 msgid "Edit" -msgstr "" +msgstr "编辑" #: templates/InvenTree/settings/user.html:17 msgid "Change Password" -msgstr "" +msgstr "更改密码" #: templates/InvenTree/settings/user.html:24 #: templates/registration/login.html:58 msgid "Username" -msgstr "" +msgstr "用户名" #: templates/InvenTree/settings/user.html:28 msgid "First Name" -msgstr "" +msgstr "名字" #: templates/InvenTree/settings/user.html:32 msgid "Last Name" -msgstr "" +msgstr "姓氏" #: templates/InvenTree/settings/user.html:36 msgid "Email Address" -msgstr "" +msgstr "电子邮件地址" #: templates/InvenTree/settings/user.html:42 msgid "Theme Settings" -msgstr "" +msgstr "主题设置" #: templates/InvenTree/settings/user.html:63 msgid "Set Theme" -msgstr "" +msgstr "设置主题" #: templates/InvenTree/settings/user.html:70 msgid "Language Settings" -msgstr "" +msgstr "语言设置" #: templates/InvenTree/settings/user.html:89 #, python-format msgid "%(lang_translated)s%% translated" -msgstr "" +msgstr "%(lang_translated)s%% 已翻译" #: templates/InvenTree/settings/user.html:91 msgid "No translations available" -msgstr "" +msgstr "无可用翻译" #: templates/InvenTree/settings/user.html:98 msgid "Set Language" -msgstr "" +msgstr "设置语言" #: templates/InvenTree/settings/user.html:103 msgid "Help the translation efforts!" -msgstr "" +msgstr "帮助翻译工作!" #: templates/InvenTree/settings/user.html:104 #, python-format msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." -msgstr "" +msgstr "InventTree web 应用程序的本地语言翻译是 社区通过crowdin贡献。欢迎并鼓励提交信息。" #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" -msgstr "" +msgstr "主页设置" #: templates/InvenTree/settings/user_labels.html:9 msgid "Label Settings" -msgstr "" +msgstr "标签设置" #: templates/InvenTree/settings/user_search.html:9 msgid "Search Settings" -msgstr "" +msgstr "搜索设置" #: templates/about.html:13 msgid "InvenTree Version Information" @@ -6436,65 +6566,69 @@ msgstr "" msgid "InvenTree Version" msgstr "" -#: templates/about.html:26 +#: templates/about.html:27 +msgid "Development Version" +msgstr "" + +#: templates/about.html:30 msgid "Up to Date" msgstr "" -#: templates/about.html:28 +#: templates/about.html:32 msgid "Update Available" msgstr "" -#: templates/about.html:34 -msgid "API Version" -msgstr "" - -#: templates/about.html:39 -msgid "Python Version" -msgstr "" - -#: templates/about.html:44 -msgid "Django Version" -msgstr "" - -#: templates/about.html:51 +#: templates/about.html:42 msgid "Commit Hash" msgstr "" -#: templates/about.html:58 +#: templates/about.html:49 msgid "Commit Date" msgstr "" -#: templates/about.html:63 +#: templates/about.html:55 msgid "InvenTree Documentation" msgstr "" -#: templates/about.html:68 +#: templates/about.html:60 +msgid "API Version" +msgstr "" + +#: templates/about.html:65 +msgid "Python Version" +msgstr "" + +#: templates/about.html:70 +msgid "Django Version" +msgstr "" + +#: templates/about.html:75 msgid "View Code on GitHub" msgstr "" -#: templates/about.html:73 +#: templates/about.html:80 msgid "Credits" msgstr "" -#: templates/about.html:78 +#: templates/about.html:85 msgid "Mobile App" msgstr "" -#: templates/about.html:83 +#: templates/about.html:90 msgid "Submit Bug Report" msgstr "" -#: templates/about.html:90 templates/clip.html:4 +#: templates/about.html:97 templates/clip.html:4 msgid "copy to clipboard" msgstr "" -#: templates/about.html:90 +#: templates/about.html:97 msgid "copy version information" msgstr "" -#: templates/about.html:100 templates/js/translated/modals.js:33 -#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661 -#: templates/js/translated/modals.js:957 templates/modals.html:29 +#: 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 "" @@ -6515,1358 +6649,1406 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/report.js:47 templates/js/translated/report.js:47 +#: 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:55 +#: 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:70 +#: 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:10 -#: templates/js/translated/report.js:98 templates/js/translated/stock.js:244 +#: 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" -msgstr "" +msgstr "选择库存项" -#: templates/js/report.js:99 templates/js/translated/report.js:99 +#: templates/js/report.js:99 templates/js/translated/report.js:119 msgid "Stock item(s) must be selected before printing reports" -msgstr "" +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:116 -#: templates/js/translated/report.js:169 templates/js/translated/report.js:223 -#: templates/js/translated/report.js:277 templates/js/translated/report.js:331 +#: 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 "" +msgstr "没有找到报表" -#: templates/js/report.js:117 templates/js/translated/report.js:117 +#: 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:152 +#: 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:153 +#: templates/js/report.js:153 templates/js/translated/report.js:173 msgid "Build(s) must be selected before printing reports" -msgstr "" +msgstr "打印报表前必须选择Build(s)" -#: templates/js/report.js:170 templates/js/translated/report.js:170 +#: 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/label.js:115 -#: templates/js/translated/report.js:205 +#: templates/js/report.js:205 templates/js/translated/label.js:134 +#: templates/js/translated/report.js:225 msgid "Select Parts" -msgstr "" +msgstr "选择商品" -#: templates/js/report.js:206 templates/js/translated/report.js:206 +#: templates/js/report.js:206 templates/js/translated/report.js:226 msgid "Part(s) must be selected before printing reports" -msgstr "" +msgstr "打印报表前必须选择商品" -#: templates/js/report.js:224 templates/js/translated/report.js:224 +#: 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:259 +#: 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:260 +#: 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:278 templates/js/translated/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:313 +#: 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:314 +#: 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:161 templates/js/translated/modals.js:1027 +#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:162 templates/js/translated/modals.js:1028 +#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:167 +#: templates/js/translated/api.js:181 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:168 +#: templates/js/translated/api.js:182 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:171 templates/js/translated/modals.js:1037 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:172 templates/js/translated/modals.js:1038 +#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 +#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:176 templates/js/translated/modals.js:1043 +#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/translated/api.js:179 templates/js/translated/modals.js:1047 +#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/translated/api.js:180 templates/js/translated/modals.js:1048 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/translated/api.js:183 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1053 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:187 +#: templates/js/translated/api.js:205 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:188 +#: templates/js/translated/api.js:206 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:16 +#: templates/js/translated/attachment.js:27 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:56 +#: templates/js/translated/attachment.js:91 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:69 +#: templates/js/translated/attachment.js:104 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:76 +#: templates/js/translated/attachment.js:111 msgid "Delete attachment" msgstr "" -#: templates/js/translated/barcode.js:8 +#: templates/js/translated/barcode.js:30 msgid "Scan barcode data here using wedge scanner" msgstr "" -#: templates/js/translated/barcode.js:10 -msgid "Enter barcode data" -msgstr "" - -#: templates/js/translated/barcode.js:14 -msgid "Barcode" -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:33 +#: templates/js/translated/barcode.js:55 msgid "Enter notes" msgstr "" -#: templates/js/translated/barcode.js:71 +#: templates/js/translated/barcode.js:93 msgid "Server error" msgstr "" -#: templates/js/translated/barcode.js:92 +#: templates/js/translated/barcode.js:114 msgid "Unknown response from server" msgstr "" -#: templates/js/translated/barcode.js:119 -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/barcode.js:141 +#: templates/js/translated/modals.js:1042 msgid "Invalid server response" msgstr "" -#: templates/js/translated/barcode.js:212 +#: templates/js/translated/barcode.js:234 msgid "Scan barcode data below" msgstr "" -#: templates/js/translated/barcode.js:270 +#: 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:288 +#: templates/js/translated/barcode.js:310 msgid "Link Barcode to Stock Item" msgstr "" -#: templates/js/translated/barcode.js:311 +#: 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:317 +#: templates/js/translated/barcode.js:339 msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:376 templates/js/translated/stock.js:220 +#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 msgid "Remove stock item" msgstr "" -#: templates/js/translated/barcode.js:418 +#: templates/js/translated/barcode.js:440 msgid "Check Stock Items into Location" msgstr "" -#: templates/js/translated/barcode.js:422 -#: templates/js/translated/barcode.js:547 +#: templates/js/translated/barcode.js:444 +#: templates/js/translated/barcode.js:571 msgid "Check In" msgstr "" -#: templates/js/translated/barcode.js:462 -#: templates/js/translated/barcode.js:586 +#: templates/js/translated/barcode.js:486 +#: templates/js/translated/barcode.js:610 msgid "Error transferring stock" msgstr "" -#: templates/js/translated/barcode.js:481 +#: templates/js/translated/barcode.js:505 msgid "Stock Item already scanned" msgstr "" -#: templates/js/translated/barcode.js:485 +#: templates/js/translated/barcode.js:509 msgid "Stock Item already in this location" msgstr "" -#: templates/js/translated/barcode.js:492 +#: templates/js/translated/barcode.js:516 msgid "Added stock item" msgstr "" -#: templates/js/translated/barcode.js:499 +#: templates/js/translated/barcode.js:523 msgid "Barcode does not match Stock Item" msgstr "" -#: templates/js/translated/barcode.js:542 +#: templates/js/translated/barcode.js:566 msgid "Check Into Location" msgstr "" -#: templates/js/translated/barcode.js:605 +#: templates/js/translated/barcode.js:629 msgid "Barcode does not match a valid location" msgstr "" -#: templates/js/translated/bom.js:195 templates/js/translated/build.js:1152 +#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:269 +#: templates/js/translated/bom.js:287 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:277 +#: templates/js/translated/bom.js:294 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:326 templates/js/translated/bom.js:412 +#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:386 +#: templates/js/translated/bom.js:402 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:388 +#: templates/js/translated/bom.js:404 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:390 templates/js/translated/bom.js:555 +#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:392 templates/js/translated/bom.js:539 +#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:483 templates/js/translated/build.js:458 -#: templates/js/translated/build.js:1250 +#: 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:42 +#: templates/js/translated/build.js:69 msgid "Edit Build Order" msgstr "" -#: templates/js/translated/build.js:68 +#: templates/js/translated/build.js:95 msgid "Create Build Order" msgstr "" -#: templates/js/translated/build.js:100 +#: templates/js/translated/build.js:127 msgid "Auto-allocate stock items to this output" msgstr "" -#: templates/js/translated/build.js:108 +#: templates/js/translated/build.js:135 msgid "Unallocate stock from build output" msgstr "" -#: templates/js/translated/build.js:118 +#: templates/js/translated/build.js:145 msgid "Complete build output" msgstr "" -#: templates/js/translated/build.js:127 +#: templates/js/translated/build.js:154 msgid "Delete build output" msgstr "" -#: templates/js/translated/build.js:222 +#: templates/js/translated/build.js:249 msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:260 templates/js/translated/order.js:471 +#: templates/js/translated/build.js:287 templates/js/translated/order.js:813 msgid "Location not specified" -msgstr "" +msgstr "未指定仓储地点" -#: templates/js/translated/build.js:364 templates/stock_table.html:20 +#: templates/js/translated/build.js:391 templates/stock_table.html:20 msgid "New Stock Item" msgstr "" -#: templates/js/translated/build.js:679 +#: templates/js/translated/build.js:702 msgid "Required Part" msgstr "" -#: templates/js/translated/build.js:700 +#: templates/js/translated/build.js:723 msgid "Quantity Per" msgstr "" -#: templates/js/translated/build.js:770 templates/js/translated/build.js:1214 +#: 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:823 +#: templates/js/translated/build.js:846 msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:840 templates/js/translated/part.js:711 -#: templates/js/translated/part.js:956 templates/js/translated/stock.js:883 -#: templates/js/translated/stock.js:1336 +#: templates/js/translated/build.js:863 templates/js/translated/part.js:856 +#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:783 +#: templates/js/translated/stock.js:1477 msgid "Select" msgstr "" -#: templates/js/translated/build.js:860 +#: templates/js/translated/build.js:883 msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:924 templates/js/translated/stock.js:1558 +#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696 msgid "No user information" -msgstr "" +msgstr "没有用户信息" -#: templates/js/translated/build.js:939 +#: templates/js/translated/build.js:956 msgid "No information" msgstr "" -#: templates/js/translated/build.js:989 +#: templates/js/translated/build.js:1007 msgid "No parts allocated for" msgstr "" -#: templates/js/translated/company.js:34 +#: templates/js/translated/company.js:65 msgid "Add Manufacturer" -msgstr "" +msgstr "添加制造商" -#: templates/js/translated/company.js:47 templates/js/translated/company.js:136 +#: templates/js/translated/company.js:78 templates/js/translated/company.js:176 msgid "Add Manufacturer Part" -msgstr "" +msgstr "添加制造商商品" -#: templates/js/translated/company.js:59 +#: templates/js/translated/company.js:99 msgid "Edit Manufacturer Part" -msgstr "" +msgstr "编辑制造商商品" -#: templates/js/translated/company.js:68 +#: templates/js/translated/company.js:108 msgid "Delete Manufacturer Part" -msgstr "" +msgstr "删除制造商商品" -#: templates/js/translated/company.js:124 templates/js/translated/order.js:58 +#: templates/js/translated/company.js:164 templates/js/translated/order.js:86 msgid "Add Supplier" -msgstr "" +msgstr "添加供应商" -#: templates/js/translated/company.js:152 +#: templates/js/translated/company.js:192 msgid "Add Supplier Part" -msgstr "" +msgstr "添加供应商商品" -#: templates/js/translated/company.js:162 +#: templates/js/translated/company.js:207 msgid "Edit Supplier Part" -msgstr "" +msgstr "编辑供应商商品" -#: templates/js/translated/company.js:172 +#: templates/js/translated/company.js:217 msgid "Delete Supplier Part" -msgstr "" +msgstr "删除供应商商品" -#: templates/js/translated/company.js:219 +#: templates/js/translated/company.js:264 msgid "Edit Company" -msgstr "" +msgstr "编辑公司信息" -#: templates/js/translated/company.js:240 +#: templates/js/translated/company.js:285 msgid "Add new Company" -msgstr "" +msgstr "增加新的公司信息" -#: templates/js/translated/company.js:317 +#: templates/js/translated/company.js:362 msgid "Parts Supplied" msgstr "" -#: templates/js/translated/company.js:326 +#: templates/js/translated/company.js:371 msgid "Parts Manufactured" msgstr "" -#: templates/js/translated/company.js:339 +#: templates/js/translated/company.js:385 msgid "No company information found" -msgstr "" +msgstr "未找到该公司信息" -#: templates/js/translated/company.js:357 +#: templates/js/translated/company.js:404 msgid "The following manufacturer parts will be deleted" msgstr "" -#: templates/js/translated/company.js:374 +#: templates/js/translated/company.js:421 msgid "Delete Manufacturer Parts" -msgstr "" +msgstr "删除制造商商品" -#: templates/js/translated/company.js:427 +#: templates/js/translated/company.js:476 msgid "No manufacturer parts found" msgstr "" -#: templates/js/translated/company.js:446 -#: templates/js/translated/company.js:696 templates/js/translated/part.js:288 -#: templates/js/translated/part.js:373 +#: templates/js/translated/company.js:496 +#: templates/js/translated/company.js:753 templates/js/translated/part.js:427 +#: templates/js/translated/part.js:512 msgid "Template part" msgstr "" -#: templates/js/translated/company.js:450 -#: templates/js/translated/company.js:700 templates/js/translated/part.js:292 -#: templates/js/translated/part.js:377 +#: templates/js/translated/company.js:500 +#: templates/js/translated/company.js:757 templates/js/translated/part.js:431 +#: templates/js/translated/part.js:516 msgid "Assembled part" msgstr "" -#: templates/js/translated/company.js:574 templates/js/translated/part.js:462 +#: templates/js/translated/company.js:627 templates/js/translated/part.js:604 msgid "No parameters found" -msgstr "" +msgstr "无指定参数" -#: templates/js/translated/company.js:610 templates/js/translated/part.js:503 +#: templates/js/translated/company.js:664 templates/js/translated/part.js:646 msgid "Edit parameter" -msgstr "" +msgstr "编辑参数" -#: templates/js/translated/company.js:611 templates/js/translated/part.js:504 +#: templates/js/translated/company.js:665 templates/js/translated/part.js:647 msgid "Delete parameter" -msgstr "" +msgstr "删除参数" -#: templates/js/translated/company.js:630 templates/js/translated/part.js:521 +#: templates/js/translated/company.js:684 templates/js/translated/part.js:664 msgid "Edit Parameter" -msgstr "" +msgstr "编辑参数" -#: templates/js/translated/company.js:641 templates/js/translated/part.js:533 +#: templates/js/translated/company.js:695 templates/js/translated/part.js:676 msgid "Delete Parameter" -msgstr "" +msgstr "删除参数" -#: templates/js/translated/company.js:677 +#: templates/js/translated/company.js:733 msgid "No supplier parts found" -msgstr "" +msgstr "未找到供应商商品" -#: templates/js/translated/filters.js:167 -#: templates/js/translated/filters.js:404 +#: templates/js/translated/filters.js:178 +#: templates/js/translated/filters.js:402 msgid "true" msgstr "" -#: templates/js/translated/filters.js:171 -#: templates/js/translated/filters.js:405 +#: templates/js/translated/filters.js:182 +#: templates/js/translated/filters.js:403 msgid "false" msgstr "" -#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:204 msgid "Select filter" -msgstr "" +msgstr "选择筛选项" -#: templates/js/translated/filters.js:268 +#: templates/js/translated/filters.js:279 msgid "Reload data" msgstr "" -#: templates/js/translated/filters.js:270 +#: templates/js/translated/filters.js:281 msgid "Add new filter" msgstr "" -#: templates/js/translated/filters.js:273 +#: templates/js/translated/filters.js:284 msgid "Clear all filters" msgstr "" -#: templates/js/translated/filters.js:303 +#: templates/js/translated/filters.js:312 msgid "Create filter" msgstr "" -#: templates/js/translated/forms.js:289 templates/js/translated/forms.js:302 -#: templates/js/translated/forms.js:314 templates/js/translated/forms.js:326 +#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336 +#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:290 +#: templates/js/translated/forms.js:324 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:303 +#: templates/js/translated/forms.js:337 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:315 +#: templates/js/translated/forms.js:349 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:327 +#: templates/js/translated/forms.js:361 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:865 templates/modals.html:21 +#: templates/js/translated/forms.js:889 templates/modals.html:21 #: templates/modals.html:47 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1258 +#: templates/js/translated/forms.js:1379 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1423 +#: templates/js/translated/forms.js:1593 msgid "Clear input" msgstr "" -#: templates/js/translated/label.js:11 -msgid "Stock item(s) must be selected before printing labels" +#: templates/js/translated/helpers.js:19 +msgid "YES" msgstr "" -#: templates/js/translated/label.js:29 templates/js/translated/label.js:79 -#: templates/js/translated/label.js:134 -msgid "No Labels Found" +#: templates/js/translated/helpers.js:21 +msgid "NO" msgstr "" #: templates/js/translated/label.js:30 +msgid "Stock item(s) must be selected before printing labels" +msgstr "打印标签前必须选择库存项目" + +#: templates/js/translated/label.js:48 templates/js/translated/label.js:98 +#: templates/js/translated/label.js:153 +msgid "No Labels Found" +msgstr "未找到标签" + +#: templates/js/translated/label.js:49 msgid "No labels found which match selected stock item(s)" -msgstr "" - -#: templates/js/translated/label.js:61 -msgid "Select Stock Locations" -msgstr "" - -#: templates/js/translated/label.js:62 -msgid "Stock location(s) must be selected before printing labels" -msgstr "" +msgstr "没有找到与选定的库存项匹配的标签" #: templates/js/translated/label.js:80 -msgid "No labels found which match selected stock location(s)" -msgstr "" +msgid "Select Stock Locations" +msgstr "选择仓储地点" -#: templates/js/translated/label.js:116 -msgid "Part(s) must be selected before printing labels" -msgstr "" +#: templates/js/translated/label.js:81 +msgid "Stock location(s) must be selected before printing labels" +msgstr "打印标签前必须选择仓储地点" + +#: templates/js/translated/label.js:99 +msgid "No labels found which match selected stock location(s)" +msgstr "没有找到匹配选定库存地点的标签" #: templates/js/translated/label.js:135 +msgid "Part(s) must be selected before printing labels" +msgstr "打印标签前必须选择商品" + +#: templates/js/translated/label.js:154 msgid "No labels found which match the selected part(s)" -msgstr "" +msgstr "没有找到与所选商品相匹配的标签" -#: templates/js/translated/label.js:209 +#: templates/js/translated/label.js:228 msgid "stock items selected" -msgstr "" +msgstr "已选择库存项" -#: templates/js/translated/label.js:217 +#: templates/js/translated/label.js:236 msgid "Select Label" -msgstr "" +msgstr "选择标签" -#: templates/js/translated/label.js:232 +#: templates/js/translated/label.js:251 msgid "Select Label Template" -msgstr "" +msgstr "选择标签模板" -#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:103 -#: templates/js/translated/modals.js:593 +#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120 +#: templates/js/translated/modals.js:610 msgid "Cancel" -msgstr "" +msgstr "取消" -#: templates/js/translated/modals.js:60 templates/js/translated/modals.js:102 -#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:956 +#: 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 msgid "Submit" msgstr "" -#: templates/js/translated/modals.js:101 +#: templates/js/translated/modals.js:118 msgid "Form Title" msgstr "" -#: templates/js/translated/modals.js:380 +#: templates/js/translated/modals.js:397 msgid "Waiting for server..." msgstr "" -#: templates/js/translated/modals.js:539 +#: templates/js/translated/modals.js:556 msgid "Show Error Information" msgstr "" -#: templates/js/translated/modals.js:592 +#: templates/js/translated/modals.js:609 msgid "Accept" msgstr "" -#: templates/js/translated/modals.js:649 +#: templates/js/translated/modals.js:666 msgid "Loading Data" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Invalid response from server" msgstr "" -#: templates/js/translated/modals.js:907 +#: templates/js/translated/modals.js:933 msgid "Form data missing from server response" msgstr "" -#: templates/js/translated/modals.js:920 +#: templates/js/translated/modals.js:945 msgid "Error posting form data" msgstr "" -#: templates/js/translated/modals.js:1017 +#: templates/js/translated/modals.js:1042 msgid "JSON response missing form data" msgstr "" -#: templates/js/translated/modals.js:1032 +#: templates/js/translated/modals.js:1057 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/translated/modals.js:1033 +#: templates/js/translated/modals.js:1058 msgid "Server returned error code 400" msgstr "" -#: templates/js/translated/modals.js:1056 +#: templates/js/translated/modals.js:1081 msgid "Error requesting form data" msgstr "" -#: templates/js/translated/model_renderers.js:38 +#: templates/js/translated/model_renderers.js:40 msgid "Company ID" -msgstr "" +msgstr "公司ID" -#: templates/js/translated/model_renderers.js:78 +#: templates/js/translated/model_renderers.js:82 msgid "Location ID" msgstr "" -#: templates/js/translated/model_renderers.js:95 +#: templates/js/translated/model_renderers.js:99 msgid "Build ID" msgstr "" -#: templates/js/translated/model_renderers.js:114 +#: templates/js/translated/model_renderers.js:119 msgid "Part ID" -msgstr "" +msgstr "商品ID" -#: templates/js/translated/model_renderers.js:163 +#: templates/js/translated/model_renderers.js:171 msgid "Category ID" -msgstr "" +msgstr "类别 ID" -#: templates/js/translated/model_renderers.js:199 +#: templates/js/translated/model_renderers.js:208 msgid "Manufacturer Part ID" -msgstr "" +msgstr "制造商商品ID" -#: templates/js/translated/model_renderers.js:227 +#: templates/js/translated/model_renderers.js:237 msgid "Supplier Part ID" -msgstr "" +msgstr "供应商商品ID" -#: templates/js/translated/order.js:17 +#: templates/js/translated/order.js:45 msgid "Add Customer" msgstr "" -#: templates/js/translated/order.js:42 +#: templates/js/translated/order.js:70 msgid "Create Sales Order" msgstr "" -#: templates/js/translated/order.js:222 +#: templates/js/translated/order.js:295 msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:246 templates/js/translated/order.js:341 +#: templates/js/translated/order.js:320 templates/js/translated/order.js:682 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:318 +#: templates/js/translated/order.js:452 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:617 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/order.js:621 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/order.js:658 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:355 +#: templates/js/translated/order.js:696 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:432 +#: templates/js/translated/order.js:774 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:10 -msgid "YES" -msgstr "" - -#: templates/js/translated/part.js:12 -msgid "NO" -msgstr "" - -#: templates/js/translated/part.js:22 -msgid "Add Part Category" -msgstr "" +#: templates/js/translated/part.js:49 +msgid "Part Attributes" +msgstr "商品属性" #: templates/js/translated/part.js:53 -msgid "Part Attributes" -msgstr "" - -#: templates/js/translated/part.js:96 msgid "Part Creation Options" +msgstr "商品创建选项" + +#: templates/js/translated/part.js:57 +msgid "Part Duplication Options" +msgstr "商品重复选项" + +#: templates/js/translated/part.js:61 +msgid "Supplier Options" msgstr "" -#: templates/js/translated/part.js:102 +#: templates/js/translated/part.js:75 +msgid "Add Part Category" +msgstr "增加商品类别" + +#: templates/js/translated/part.js:164 +msgid "Create Initial Stock" +msgstr "" + +#: templates/js/translated/part.js:165 +msgid "Create an initial stock item for this part" +msgstr "" + +#: templates/js/translated/part.js:172 msgid "Initial Stock Quantity" msgstr "" -#: templates/js/translated/part.js:103 -msgid "Initialize part stock with specified quantity" +#: templates/js/translated/part.js:173 +msgid "Specify initial stock quantity for this part" msgstr "" -#: templates/js/translated/part.js:109 +#: templates/js/translated/part.js:180 templates/js/translated/stock.js:330 +msgid "Select destination stock location" +msgstr "" + +#: templates/js/translated/part.js:191 msgid "Copy Category Parameters" -msgstr "" +msgstr "复制类别参数" -#: templates/js/translated/part.js:110 +#: templates/js/translated/part.js:192 msgid "Copy parameter templates from selected part category" msgstr "" -#: templates/js/translated/part.js:120 -msgid "Part Duplication Options" +#: templates/js/translated/part.js:200 +msgid "Add Supplier Data" msgstr "" -#: templates/js/translated/part.js:131 +#: templates/js/translated/part.js:201 +msgid "Create initial supplier data for this part" +msgstr "" + +#: templates/js/translated/part.js:257 msgid "Copy Image" msgstr "" -#: templates/js/translated/part.js:132 +#: templates/js/translated/part.js:258 msgid "Copy image from original part" msgstr "" -#: templates/js/translated/part.js:138 +#: templates/js/translated/part.js:265 msgid "Copy BOM" msgstr "" -#: templates/js/translated/part.js:139 +#: templates/js/translated/part.js:266 msgid "Copy bill of materials from original part" msgstr "" -#: templates/js/translated/part.js:145 +#: templates/js/translated/part.js:273 msgid "Copy Parameters" msgstr "" -#: templates/js/translated/part.js:146 +#: templates/js/translated/part.js:274 msgid "Copy parameter data from original part" msgstr "" -#: templates/js/translated/part.js:158 +#: templates/js/translated/part.js:287 msgid "Parent part category" msgstr "" -#: templates/js/translated/part.js:196 +#: templates/js/translated/part.js:331 msgid "Edit Part" -msgstr "" +msgstr "编辑商品" -#: templates/js/translated/part.js:280 templates/js/translated/part.js:365 +#: templates/js/translated/part.js:419 templates/js/translated/part.js:504 msgid "Trackable part" -msgstr "" +msgstr "可追溯商品" -#: templates/js/translated/part.js:284 templates/js/translated/part.js:369 +#: templates/js/translated/part.js:423 templates/js/translated/part.js:508 msgid "Virtual part" -msgstr "" +msgstr "虚拟商品" -#: templates/js/translated/part.js:296 +#: templates/js/translated/part.js:435 msgid "Starred part" -msgstr "" +msgstr "已标记商品" -#: templates/js/translated/part.js:300 +#: templates/js/translated/part.js:439 msgid "Salable part" -msgstr "" +msgstr "可销售商品" -#: templates/js/translated/part.js:414 +#: templates/js/translated/part.js:554 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:601 templates/js/translated/part.js:840 +#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005 msgid "No parts found" msgstr "" -#: templates/js/translated/part.js:779 +#: templates/js/translated/part.js:932 msgid "No category" -msgstr "" +msgstr "没有分类" -#: templates/js/translated/part.js:797 -#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/part.js:955 +#: templates/js/translated/table_filters.js:350 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:981 templates/js/translated/stock.js:1360 +#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1501 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1024 +#: templates/js/translated/part.js:1202 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1075 templates/js/translated/stock.js:443 +#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:514 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1076 templates/js/translated/stock.js:444 +#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:515 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1082 +#: templates/js/translated/part.js:1260 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1107 +#: templates/js/translated/part.js:1282 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1296 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:1321 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1160 +#: templates/js/translated/part.js:1376 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1161 +#: templates/js/translated/part.js:1377 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1261 +#: templates/js/translated/part.js:1478 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1280 +#: templates/js/translated/part.js:1497 msgid "Single Price Difference" msgstr "" -#: templates/js/translated/stock.js:9 +#: templates/js/translated/stock.js:66 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:39 +#: templates/js/translated/stock.js:96 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:42 +#: templates/js/translated/stock.js:99 msgid "Format" msgstr "" -#: templates/js/translated/stock.js:43 +#: templates/js/translated/stock.js:100 msgid "Select file format" msgstr "" -#: templates/js/translated/stock.js:55 +#: templates/js/translated/stock.js:124 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:56 +#: templates/js/translated/stock.js:125 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:98 +#: templates/js/translated/stock.js:167 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:99 +#: templates/js/translated/stock.js:168 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:174 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:106 +#: templates/js/translated/stock.js:175 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:110 +#: templates/js/translated/stock.js:179 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:111 +#: templates/js/translated/stock.js:180 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:115 +#: templates/js/translated/stock.js:184 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:116 users/models.py:190 +#: templates/js/translated/stock.js:185 users/models.py:190 msgid "Add" -msgstr "" +msgstr "添加" -#: templates/js/translated/stock.js:120 templates/stock_table.html:63 +#: templates/js/translated/stock.js:189 templates/stock_table.html:63 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:209 +#: templates/js/translated/stock.js:278 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:245 +#: templates/js/translated/stock.js:314 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:261 -msgid "Select destination stock location" -msgstr "" - -#: templates/js/translated/stock.js:269 +#: templates/js/translated/stock.js:339 msgid "Stock transaction notes" msgstr "" -#: templates/js/translated/stock.js:406 +#: templates/js/translated/stock.js:477 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:408 +#: templates/js/translated/stock.js:479 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:413 +#: templates/js/translated/stock.js:484 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:439 +#: templates/js/translated/stock.js:510 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:465 +#: templates/js/translated/stock.js:536 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:513 +#: templates/js/translated/stock.js:584 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:621 +#: templates/js/translated/stock.js:691 msgid "In production" -msgstr "" +msgstr "正在生产" -#: templates/js/translated/stock.js:625 +#: templates/js/translated/stock.js:695 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:633 +#: templates/js/translated/stock.js:699 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:703 msgid "Assigned to Sales Order" msgstr "" #: templates/js/translated/stock.js:709 -msgid "No stock items matching query" -msgstr "" +msgid "No stock location set" +msgstr "未设置仓储地点" -#: templates/js/translated/stock.js:729 -msgid "items" -msgstr "" - -#: templates/js/translated/stock.js:821 -msgid "batches" -msgstr "" - -#: templates/js/translated/stock.js:848 -msgid "locations" -msgstr "" - -#: templates/js/translated/stock.js:850 -msgid "Undefined location" -msgstr "" - -#: templates/js/translated/stock.js:951 +#: templates/js/translated/stock.js:865 msgid "Stock item is in production" -msgstr "" +msgstr "库存品正在生产" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:870 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:959 +#: templates/js/translated/stock.js:873 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:963 +#: templates/js/translated/stock.js:877 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:965 +#: templates/js/translated/stock.js:879 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:969 +#: templates/js/translated/stock.js:883 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:973 +#: templates/js/translated/stock.js:887 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:894 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:896 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:987 +#: templates/js/translated/stock.js:898 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:991 -#: templates/js/translated/table_filters.js:148 +#: templates/js/translated/stock.js:902 +#: templates/js/translated/table_filters.js:161 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1020 +#: templates/js/translated/stock.js:956 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1073 +#: templates/js/translated/stock.js:1029 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1223 +#: templates/js/translated/stock.js:1067 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +msgid "items" +msgstr "" + +#: templates/js/translated/stock.js:1176 +msgid "batches" +msgstr "" + +#: templates/js/translated/stock.js:1203 +msgid "locations" +msgstr "" + +#: templates/js/translated/stock.js:1205 +msgid "Undefined location" +msgstr "" + +#: templates/js/translated/stock.js:1364 msgid "Stock Status" msgstr "" -#: templates/js/translated/stock.js:1238 +#: templates/js/translated/stock.js:1379 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1252 +#: templates/js/translated/stock.js:1393 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1253 +#: templates/js/translated/stock.js:1394 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1392 +#: templates/js/translated/stock.js:1533 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1439 +#: templates/js/translated/stock.js:1580 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1458 +#: templates/js/translated/stock.js:1599 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1477 +#: templates/js/translated/stock.js:1618 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1495 +#: templates/js/translated/stock.js:1636 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1518 +#: templates/js/translated/stock.js:1659 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1526 +#: templates/js/translated/stock.js:1667 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1570 +#: templates/js/translated/stock.js:1708 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1571 +#: templates/js/translated/stock.js:1709 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1715 +#: templates/js/translated/stock.js:1833 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1738 +#: templates/js/translated/stock.js:1856 msgid "Serial" msgstr "" -#: templates/js/translated/stock.js:1766 +#: templates/js/translated/stock.js:1884 msgid "Uninstall Stock Item" msgstr "" -#: templates/js/translated/table_filters.js:43 +#: templates/js/translated/table_filters.js:56 msgid "Trackable Part" -msgstr "" +msgstr "可追溯商品" -#: templates/js/translated/table_filters.js:47 +#: templates/js/translated/table_filters.js:60 msgid "Assembled Part" msgstr "" -#: templates/js/translated/table_filters.js:51 +#: templates/js/translated/table_filters.js:64 msgid "Validated" msgstr "" -#: templates/js/translated/table_filters.js:59 +#: templates/js/translated/table_filters.js:72 msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:79 -#: templates/js/translated/table_filters.js:143 +#: templates/js/translated/table_filters.js:92 +#: templates/js/translated/table_filters.js:156 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:80 +#: templates/js/translated/table_filters.js:93 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:90 -#: templates/js/translated/table_filters.js:91 -#: templates/js/translated/table_filters.js:314 +#: templates/js/translated/table_filters.js:103 +#: templates/js/translated/table_filters.js:104 +#: templates/js/translated/table_filters.js:327 msgid "Include subcategories" msgstr "" -#: templates/js/translated/table_filters.js:101 -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:114 +#: templates/js/translated/table_filters.js:191 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:117 +#: templates/js/translated/table_filters.js:198 msgid "Serial number GTE" msgstr "" -#: templates/js/translated/table_filters.js:105 -#: templates/js/translated/table_filters.js:186 +#: templates/js/translated/table_filters.js:118 +#: templates/js/translated/table_filters.js:199 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:108 -#: templates/js/translated/table_filters.js:189 +#: templates/js/translated/table_filters.js:121 +#: templates/js/translated/table_filters.js:202 msgid "Serial number LTE" msgstr "" -#: templates/js/translated/table_filters.js:109 -#: templates/js/translated/table_filters.js:190 +#: templates/js/translated/table_filters.js:122 +#: templates/js/translated/table_filters.js:203 msgid "Serial number less than or equal to" msgstr "" -#: templates/js/translated/table_filters.js:112 -#: templates/js/translated/table_filters.js:113 -#: templates/js/translated/table_filters.js:181 -#: templates/js/translated/table_filters.js:182 +#: 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 msgid "Serial number" msgstr "" -#: templates/js/translated/table_filters.js:117 -#: templates/js/translated/table_filters.js:199 +#: templates/js/translated/table_filters.js:130 +#: templates/js/translated/table_filters.js:212 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:128 -#: templates/js/translated/table_filters.js:304 +#: templates/js/translated/table_filters.js:141 +#: templates/js/translated/table_filters.js:317 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:129 +#: templates/js/translated/table_filters.js:142 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:147 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:151 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:139 +#: templates/js/translated/table_filters.js:152 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:144 +#: templates/js/translated/table_filters.js:157 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:149 +#: templates/js/translated/table_filters.js:162 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:154 +#: templates/js/translated/table_filters.js:167 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:171 msgid "In Production" -msgstr "" +msgstr "正在生产" -#: templates/js/translated/table_filters.js:159 +#: templates/js/translated/table_filters.js:172 msgid "Show items which are in production" -msgstr "" +msgstr "显示正在生产的项目" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:176 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:164 +#: templates/js/translated/table_filters.js:177 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:181 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:169 +#: templates/js/translated/table_filters.js:182 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:174 +#: templates/js/translated/table_filters.js:187 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:194 -#: templates/js/translated/table_filters.js:195 +#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:208 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:216 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:204 +#: templates/js/translated/table_filters.js:217 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:213 +#: templates/js/translated/table_filters.js:226 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:219 +#: templates/js/translated/table_filters.js:232 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:250 +#: templates/js/translated/table_filters.js:263 msgid "Build status" -msgstr "" +msgstr "生产状态" -#: templates/js/translated/table_filters.js:269 -#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:282 +#: templates/js/translated/table_filters.js:299 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:274 -#: templates/js/translated/table_filters.js:291 +#: templates/js/translated/table_filters.js:287 +#: templates/js/translated/table_filters.js:304 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:315 +#: templates/js/translated/table_filters.js:328 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:319 +#: templates/js/translated/table_filters.js:332 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:333 msgid "Part has internal part number" -msgstr "" +msgstr "商品有内部编号" -#: templates/js/translated/table_filters.js:325 +#: templates/js/translated/table_filters.js:338 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:333 +#: templates/js/translated/table_filters.js:346 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:349 +#: templates/js/translated/table_filters.js:362 msgid "Starred" msgstr "" -#: templates/js/translated/table_filters.js:361 +#: templates/js/translated/table_filters.js:374 msgid "Purchasable" msgstr "" -#: templates/js/translated/tables.js:342 +#: templates/js/translated/tables.js:366 msgid "Loading data" msgstr "" -#: templates/js/translated/tables.js:345 +#: templates/js/translated/tables.js:369 msgid "rows per page" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "Showing" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "to" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "of" msgstr "" -#: templates/js/translated/tables.js:348 +#: templates/js/translated/tables.js:372 msgid "rows" msgstr "" -#: templates/js/translated/tables.js:354 +#: templates/js/translated/tables.js:378 msgid "No matching results" msgstr "" -#: templates/js/translated/tables.js:357 +#: templates/js/translated/tables.js:381 msgid "Hide/Show pagination" msgstr "" -#: templates/js/translated/tables.js:360 +#: templates/js/translated/tables.js:384 msgid "Refresh" msgstr "" -#: templates/js/translated/tables.js:363 +#: templates/js/translated/tables.js:387 msgid "Toggle" msgstr "" -#: templates/js/translated/tables.js:366 +#: templates/js/translated/tables.js:390 msgid "Columns" msgstr "" -#: templates/js/translated/tables.js:369 +#: templates/js/translated/tables.js:393 msgid "All" msgstr "" -#: templates/navbar.html:13 +#: templates/navbar.html:19 msgid "Toggle navigation" msgstr "" -#: templates/navbar.html:33 +#: templates/navbar.html:39 msgid "Buy" -msgstr "" +msgstr "采购" -#: templates/navbar.html:43 +#: templates/navbar.html:51 msgid "Sell" -msgstr "" +msgstr "销售" -#: templates/navbar.html:55 -msgid "Scan Barcode" -msgstr "" - -#: templates/navbar.html:77 users/models.py:39 +#: templates/navbar.html:83 users/models.py:39 msgid "Admin" -msgstr "" +msgstr "管理员" -#: templates/navbar.html:79 +#: templates/navbar.html:85 msgid "Logout" msgstr "" -#: templates/navbar.html:81 templates/registration/login.html:89 +#: templates/navbar.html:87 templates/registration/login.html:89 msgid "Login" msgstr "" -#: templates/navbar.html:104 +#: templates/navbar.html:106 msgid "About InvenTree" msgstr "" @@ -7886,7 +8068,7 @@ msgstr "" #: templates/registration/login.html:64 msgid "Enter username" -msgstr "" +msgstr "输入用户名" #: templates/registration/login.html:70 msgid "Password" @@ -7894,7 +8076,7 @@ msgstr "" #: templates/registration/login.html:83 msgid "Username / password combination is incorrect" -msgstr "" +msgstr "用户名/密码校验错误" #: templates/registration/login.html:95 #: templates/registration/password_reset_form.html:51 @@ -7920,7 +8102,7 @@ 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 "" +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." @@ -7980,11 +8162,11 @@ msgstr "" #: templates/stats.html:63 msgid "Email Settings" -msgstr "" +msgstr "电子邮件设置" #: templates/stats.html:66 msgid "Email settings not configured" -msgstr "" +msgstr "电子邮件设置未配置" #: templates/stock_table.html:14 msgid "Export Stock Information" @@ -7996,7 +8178,7 @@ msgstr "" #: templates/stock_table.html:43 msgid "Print test reports" -msgstr "" +msgstr "打印测试报表" #: templates/stock_table.html:50 msgid "Stock Options" @@ -8040,65 +8222,65 @@ msgstr "" #: templates/yesnolabel.html:4 msgid "Yes" -msgstr "" +msgstr "确定" #: templates/yesnolabel.html:6 msgid "No" -msgstr "" +msgstr "取消" #: users/admin.py:64 msgid "Users" -msgstr "" +msgstr "用户" #: users/admin.py:65 msgid "Select which users are assigned to this group" -msgstr "" +msgstr "选择分配给该组的用户" #: users/admin.py:187 msgid "The following users are members of multiple groups:" -msgstr "" +msgstr "以下用户是多个群组的成员:" #: users/admin.py:210 msgid "Personal info" -msgstr "" +msgstr "个人资料" #: users/admin.py:211 msgid "Permissions" -msgstr "" +msgstr "权限" #: users/admin.py:214 msgid "Important dates" -msgstr "" +msgstr "重要日期" #: users/models.py:177 msgid "Permission set" -msgstr "" +msgstr "权限设置" #: users/models.py:185 msgid "Group" -msgstr "" +msgstr "群组" #: users/models.py:188 msgid "View" -msgstr "" +msgstr "视图" #: users/models.py:188 msgid "Permission to view items" -msgstr "" +msgstr "查看项目权限" #: users/models.py:190 msgid "Permission to add items" -msgstr "" +msgstr "添加项目权限" #: users/models.py:192 msgid "Change" -msgstr "" +msgstr "更改" #: users/models.py:192 msgid "Permissions to edit items" -msgstr "" +msgstr "编辑项目权限" #: users/models.py:194 msgid "Permission to delete items" -msgstr "" +msgstr "删除项目权限" diff --git a/InvenTree/order/api.py b/InvenTree/order/api.py index a834989fd9..d97da75b73 100644 --- a/InvenTree/order/api.py +++ b/InvenTree/order/api.py @@ -5,13 +5,18 @@ JSON API for the Order app # -*- coding: utf-8 -*- from __future__ import unicode_literals +from django.utils.translation import ugettext_lazy as _ from django.conf.urls import url, include +from django.db import transaction -from django_filters.rest_framework import DjangoFilterBackend +from django_filters import rest_framework as rest_filters from rest_framework import generics from rest_framework import filters, status from rest_framework.response import Response +from rest_framework.serializers import ValidationError + +from InvenTree.filters import InvenTreeOrderingFilter from InvenTree.helpers import str2bool from InvenTree.api import AttachmentMixin from InvenTree.status_codes import PurchaseOrderStatus, SalesOrderStatus @@ -27,6 +32,7 @@ from .models import SalesOrder, SalesOrderLineItem, SalesOrderAllocation from .models import SalesOrderAttachment from .serializers import SalesOrderSerializer, SOLineItemSerializer, SOAttachmentSerializer from .serializers import SalesOrderAllocationSerializer +from .serializers import POReceiveSerializer class POList(generics.ListCreateAPIView): @@ -144,7 +150,7 @@ class POList(generics.ListCreateAPIView): return queryset filter_backends = [ - DjangoFilterBackend, + rest_filters.DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter, ] @@ -204,6 +210,111 @@ class PODetail(generics.RetrieveUpdateDestroyAPIView): return queryset +class POReceive(generics.CreateAPIView): + """ + API endpoint to receive stock items against a purchase order. + + - The purchase order is specified in the URL. + - Items to receive are specified as a list called "items" with the following options: + - supplier_part: pk value of the supplier part + - quantity: quantity to receive + - status: stock item status + - location: destination for stock item (optional) + - A global location can also be specified + """ + + queryset = PurchaseOrderLineItem.objects.none() + + serializer_class = POReceiveSerializer + + def get_serializer_context(self): + + context = super().get_serializer_context() + + # Pass the purchase order through to the serializer for validation + context['order'] = self.get_order() + + return context + + def get_order(self): + """ + Returns the PurchaseOrder associated with this API endpoint + """ + + pk = self.kwargs.get('pk', None) + + if pk is None: + return None + else: + order = PurchaseOrder.objects.get(pk=self.kwargs['pk']) + return order + + def create(self, request, *args, **kwargs): + + # Which purchase order are we receiving against? + self.order = self.get_order() + + # Validate the serialized data + serializer = self.get_serializer(data=request.data) + serializer.is_valid(raise_exception=True) + + # Receive the line items + self.receive_items(serializer) + + headers = self.get_success_headers(serializer.data) + return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) + + @transaction.atomic + def receive_items(self, serializer): + """ + Receive the items + + At this point, much of the heavy lifting has been done for us by DRF serializers! + + We have a list of "items", each a dict which contains: + - line_item: A PurchaseOrderLineItem matching this order + - location: A destination location + - quantity: A validated numerical quantity + - status: The status code for the received item + """ + + data = serializer.validated_data + + location = data['location'] + + items = data['items'] + + # Check if the location is not specified for any particular item + for item in items: + + line = item['line_item'] + + if not item.get('location', None): + # If a global location is specified, use that + item['location'] = location + + if not item['location']: + # The line item specifies a location? + item['location'] = line.get_destination() + + if not item['location']: + raise ValidationError({ + 'location': _("Destination location must be specified"), + }) + + # Now we can actually receive the items + for item in items: + + self.order.receive_line_item( + item['line_item'], + item['location'], + item['quantity'], + self.request.user, + status=item['status'], + barcode=item.get('barcode', ''), + ) + + class POLineItemList(generics.ListCreateAPIView): """ API endpoint for accessing a list of POLineItem objects @@ -214,6 +325,14 @@ class POLineItemList(generics.ListCreateAPIView): queryset = PurchaseOrderLineItem.objects.all() serializer_class = POLineItemSerializer + def get_queryset(self, *args, **kwargs): + + queryset = super().get_queryset(*args, **kwargs) + + queryset = POLineItemSerializer.annotate_queryset(queryset) + + return queryset + def get_serializer(self, *args, **kwargs): try: @@ -226,18 +345,26 @@ class POLineItemList(generics.ListCreateAPIView): return self.serializer_class(*args, **kwargs) filter_backends = [ - DjangoFilterBackend, + rest_filters.DjangoFilterBackend, filters.SearchFilter, - filters.OrderingFilter + InvenTreeOrderingFilter ] + ordering_field_aliases = { + 'MPN': 'part__manufacturer_part__MPN', + 'SKU': 'part__SKU', + 'part_name': 'part__part__name', + } + ordering_fields = [ - 'part__part__name', - 'part__MPN', - 'part__SKU', - 'reference', + 'MPN', + 'part_name', + 'purchase_price', 'quantity', 'received', + 'reference', + 'SKU', + 'total_price', ] search_fields = [ @@ -262,6 +389,14 @@ class POLineItemDetail(generics.RetrieveUpdateDestroyAPIView): queryset = PurchaseOrderLineItem.objects.all() serializer_class = POLineItemSerializer + def get_queryset(self): + + queryset = super().get_queryset() + + queryset = POLineItemSerializer.annotate_queryset(queryset) + + return queryset + class SOAttachmentList(generics.ListCreateAPIView, AttachmentMixin): """ @@ -272,7 +407,7 @@ class SOAttachmentList(generics.ListCreateAPIView, AttachmentMixin): serializer_class = SOAttachmentSerializer filter_backends = [ - DjangoFilterBackend, + rest_filters.DjangoFilterBackend, ] filter_fields = [ @@ -396,7 +531,7 @@ class SOList(generics.ListCreateAPIView): return queryset filter_backends = [ - DjangoFilterBackend, + rest_filters.DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter, ] @@ -495,7 +630,7 @@ class SOLineItemList(generics.ListCreateAPIView): return queryset filter_backends = [ - DjangoFilterBackend, + rest_filters.DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter ] @@ -580,7 +715,7 @@ class SOAllocationList(generics.ListCreateAPIView): return queryset filter_backends = [ - DjangoFilterBackend, + rest_filters.DjangoFilterBackend, ] # Default filterable fields @@ -598,7 +733,7 @@ class POAttachmentList(generics.ListCreateAPIView, AttachmentMixin): serializer_class = POAttachmentSerializer filter_backends = [ - DjangoFilterBackend, + rest_filters.DjangoFilterBackend, ] filter_fields = [ @@ -616,13 +751,25 @@ class POAttachmentDetail(generics.RetrieveUpdateDestroyAPIView, AttachmentMixin) order_api_urls = [ + # API endpoints for purchase orders - url(r'po/attachment/', include([ - url(r'^(?P\d+)/$', POAttachmentDetail.as_view(), name='api-po-attachment-detail'), - url(r'^.*$', POAttachmentList.as_view(), name='api-po-attachment-list'), + url(r'^po/', include([ + + # Purchase order attachments + url(r'attachment/', include([ + url(r'^(?P\d+)/$', POAttachmentDetail.as_view(), name='api-po-attachment-detail'), + url(r'^.*$', POAttachmentList.as_view(), name='api-po-attachment-list'), + ])), + + # Individual purchase order detail URLs + url(r'^(?P\d+)/', include([ + url(r'^receive/', POReceive.as_view(), name='api-po-receive'), + url(r'.*$', PODetail.as_view(), name='api-po-detail'), + ])), + + # Purchase order list + url(r'^.*$', POList.as_view(), name='api-po-list'), ])), - url(r'^po/(?P\d+)/$', PODetail.as_view(), name='api-po-detail'), - url(r'^po/.*$', POList.as_view(), name='api-po-list'), # API endpoints for purchase order line items url(r'^po-line/(?P\d+)/$', POLineItemDetail.as_view(), name='api-po-line-detail'), diff --git a/InvenTree/order/migrations/0049_alter_purchaseorderlineitem_unique_together.py b/InvenTree/order/migrations/0049_alter_purchaseorderlineitem_unique_together.py new file mode 100644 index 0000000000..c451e1754d --- /dev/null +++ b/InvenTree/order/migrations/0049_alter_purchaseorderlineitem_unique_together.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.4 on 2021-08-12 17:49 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('company', '0040_alter_company_currency'), + ('order', '0048_auto_20210702_2321'), + ] + + operations = [ + migrations.AlterUniqueTogether( + name='purchaseorderlineitem', + unique_together={('order', 'part', 'quantity', 'purchase_price')}, + ), + ] diff --git a/InvenTree/order/migrations/0050_alter_purchaseorderlineitem_destination.py b/InvenTree/order/migrations/0050_alter_purchaseorderlineitem_destination.py new file mode 100644 index 0000000000..7c0620d053 --- /dev/null +++ b/InvenTree/order/migrations/0050_alter_purchaseorderlineitem_destination.py @@ -0,0 +1,21 @@ +# Generated by Django 3.2.4 on 2021-09-02 00:42 + +from django.db import migrations +import django.db.models.deletion +import mptt.fields + + +class Migration(migrations.Migration): + + dependencies = [ + ('stock', '0065_auto_20210701_0509'), + ('order', '0049_alter_purchaseorderlineitem_unique_together'), + ] + + operations = [ + migrations.AlterField( + model_name='purchaseorderlineitem', + name='destination', + field=mptt.fields.TreeForeignKey(blank=True, help_text='Where does the Purchaser want this item to be stored?', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='po_lines', to='stock.stocklocation', verbose_name='Destination'), + ), + ] diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py index 248ecb277d..a069cf126f 100644 --- a/InvenTree/order/models.py +++ b/InvenTree/order/models.py @@ -411,6 +411,11 @@ class PurchaseOrder(Order): """ notes = kwargs.get('notes', '') + barcode = kwargs.get('barcode', '') + + # Prevent null values for barcode + if barcode is None: + barcode = '' if not self.status == PurchaseOrderStatus.PLACED: raise ValidationError({"status": _("Lines can only be received against an order marked as 'Placed'")}) @@ -433,7 +438,8 @@ class PurchaseOrder(Order): quantity=quantity, purchase_order=self, status=status, - purchase_price=purchase_price, + purchase_price=line.purchase_price, + uid=barcode ) stock.save(add_note=False) @@ -729,7 +735,7 @@ class PurchaseOrderLineItem(OrderLineItem): class Meta: unique_together = ( - ('order', 'part') + ('order', 'part', 'quantity', 'purchase_price') ) def __str__(self): @@ -767,7 +773,13 @@ class PurchaseOrderLineItem(OrderLineItem): help_text=_("Supplier part"), ) - received = models.DecimalField(decimal_places=5, max_digits=15, default=0, verbose_name=_('Received'), help_text=_('Number of items received')) + received = models.DecimalField( + decimal_places=5, + max_digits=15, + default=0, + verbose_name=_('Received'), + help_text=_('Number of items received') + ) purchase_price = InvenTreeModelMoneyField( max_digits=19, @@ -778,7 +790,7 @@ class PurchaseOrderLineItem(OrderLineItem): ) destination = TreeForeignKey( - 'stock.StockLocation', on_delete=models.DO_NOTHING, + 'stock.StockLocation', on_delete=models.SET_NULL, verbose_name=_('Destination'), related_name='po_lines', blank=True, null=True, diff --git a/InvenTree/order/serializers.py b/InvenTree/order/serializers.py index 4a95bbb166..da2d23cd0d 100644 --- a/InvenTree/order/serializers.py +++ b/InvenTree/order/serializers.py @@ -7,18 +7,27 @@ from __future__ import unicode_literals from django.utils.translation import ugettext_lazy as _ +from django.db import models from django.db.models import Case, When, Value -from django.db.models import BooleanField +from django.db.models import BooleanField, ExpressionWrapper, F from rest_framework import serializers +from rest_framework.serializers import ValidationError + from sql_util.utils import SubqueryCount from InvenTree.serializers import InvenTreeModelSerializer +from InvenTree.serializers import InvenTreeAttachmentSerializer from InvenTree.serializers import InvenTreeMoneySerializer from InvenTree.serializers import InvenTreeAttachmentSerializerField +from InvenTree.status_codes import StockStatus + from company.serializers import CompanyBriefSerializer, SupplierPartSerializer + from part.serializers import PartBriefSerializer + +import stock.models from stock.serializers import LocationBriefSerializer, StockItemSerializer, LocationSerializer from .models import PurchaseOrder, PurchaseOrderLineItem @@ -108,6 +117,23 @@ class POSerializer(InvenTreeModelSerializer): class POLineItemSerializer(InvenTreeModelSerializer): + @staticmethod + def annotate_queryset(queryset): + """ + Add some extra annotations to this queryset: + + - Total price = purchase_price * quantity + """ + + queryset = queryset.annotate( + total_price=ExpressionWrapper( + F('purchase_price') * F('quantity'), + output_field=models.DecimalField() + ) + ) + + return queryset + def __init__(self, *args, **kwargs): part_detail = kwargs.pop('part_detail', False) @@ -118,10 +144,11 @@ class POLineItemSerializer(InvenTreeModelSerializer): self.fields.pop('part_detail') self.fields.pop('supplier_part_detail') - # TODO: Once https://github.com/inventree/InvenTree/issues/1687 is fixed, remove default values quantity = serializers.FloatField(default=1) received = serializers.FloatField(default=0) + total_price = serializers.FloatField(read_only=True) + part_detail = PartBriefSerializer(source='get_base_part', many=False, read_only=True) supplier_part_detail = SupplierPartSerializer(source='part', many=False, read_only=True) @@ -157,10 +184,136 @@ class POLineItemSerializer(InvenTreeModelSerializer): 'purchase_price_string', 'destination', 'destination_detail', + 'total_price', ] -class POAttachmentSerializer(InvenTreeModelSerializer): +class POLineItemReceiveSerializer(serializers.Serializer): + """ + A serializer for receiving a single purchase order line item against a purchase order + """ + + line_item = serializers.PrimaryKeyRelatedField( + queryset=PurchaseOrderLineItem.objects.all(), + many=False, + allow_null=False, + required=True, + label=_('Line Item'), + ) + + def validate_line_item(self, item): + + if item.order != self.context['order']: + raise ValidationError(_('Line item does not match purchase order')) + + return item + + location = serializers.PrimaryKeyRelatedField( + queryset=stock.models.StockLocation.objects.all(), + many=False, + allow_null=True, + required=False, + label=_('Location'), + help_text=_('Select destination location for received items'), + ) + + quantity = serializers.DecimalField( + max_digits=15, + decimal_places=5, + min_value=0, + required=True, + ) + + status = serializers.ChoiceField( + choices=list(StockStatus.items()), + default=StockStatus.OK, + label=_('Status'), + ) + + barcode = serializers.CharField( + label=_('Barcode Hash'), + help_text=_('Unique identifier field'), + default='', + required=False, + ) + + def validate_barcode(self, barcode): + """ + Cannot check in a LineItem with a barcode that is already assigned + """ + + # Ignore empty barcode values + if not barcode or barcode.strip() == '': + return + + if stock.models.StockItem.objects.filter(uid=barcode).exists(): + raise ValidationError(_('Barcode is already in use')) + + return barcode + + class Meta: + fields = [ + 'barcode', + 'line_item', + 'location', + 'quantity', + 'status', + ] + + +class POReceiveSerializer(serializers.Serializer): + """ + Serializer for receiving items against a purchase order + """ + + items = POLineItemReceiveSerializer(many=True) + + location = serializers.PrimaryKeyRelatedField( + queryset=stock.models.StockLocation.objects.all(), + many=False, + allow_null=True, + label=_('Location'), + help_text=_('Select destination location for received items'), + ) + + def is_valid(self, raise_exception=False): + + super().is_valid(raise_exception) + + # Custom validation + data = self.validated_data + + items = data.get('items', []) + + if len(items) == 0: + self._errors['items'] = _('Line items must be provided') + else: + # Ensure barcodes are unique + unique_barcodes = set() + + for item in items: + barcode = item.get('barcode', '') + + if barcode: + if barcode in unique_barcodes: + self._errors['items'] = _('Supplied barcode values must be unique') + break + else: + unique_barcodes.add(barcode) + + if self._errors and raise_exception: + raise ValidationError(self.errors) + + return not bool(self._errors) + + class Meta: + fields = [ + 'items', + 'location', + ] + + +class POAttachmentSerializer(InvenTreeAttachmentSerializer): """ Serializers for the PurchaseOrderAttachment model """ @@ -174,6 +327,7 @@ class POAttachmentSerializer(InvenTreeModelSerializer): 'pk', 'order', 'attachment', + 'filename', 'comment', 'upload_date', ] @@ -381,7 +535,7 @@ class SOLineItemSerializer(InvenTreeModelSerializer): ] -class SOAttachmentSerializer(InvenTreeModelSerializer): +class SOAttachmentSerializer(InvenTreeAttachmentSerializer): """ Serializers for the SalesOrderAttachment model """ @@ -395,6 +549,7 @@ class SOAttachmentSerializer(InvenTreeModelSerializer): 'pk', 'order', 'attachment', + 'filename', 'comment', 'upload_date', ] diff --git a/InvenTree/order/templates/order/order_wizard/match_fields.html b/InvenTree/order/templates/order/order_wizard/match_fields.html index cd81142341..c1a3618d8d 100644 --- a/InvenTree/order/templates/order/order_wizard/match_fields.html +++ b/InvenTree/order/templates/order/order_wizard/match_fields.html @@ -57,7 +57,7 @@ {% for duplicate in duplicates %} {% if duplicate == col.value %} {% endif %} {% endfor %} diff --git a/InvenTree/order/templates/order/order_wizard/match_parts.html b/InvenTree/order/templates/order/order_wizard/match_parts.html index e0f030bad5..4f84d205ee 100644 --- a/InvenTree/order/templates/order/order_wizard/match_parts.html +++ b/InvenTree/order/templates/order/order_wizard/match_parts.html @@ -115,7 +115,7 @@ {{ block.super }} $('.bomselect').select2({ - dropdownAutoWidth: true, + width: '100%', matcher: partialMatcher, }); diff --git a/InvenTree/order/templates/order/order_wizard/select_parts.html b/InvenTree/order/templates/order/order_wizard/select_parts.html index a02113fa18..e456b234b6 100644 --- a/InvenTree/order/templates/order/order_wizard/select_parts.html +++ b/InvenTree/order/templates/order/order_wizard/select_parts.html @@ -38,7 +38,7 @@ {% include "hover_image.html" with image=part.image hover=False %} - {{ part.full_name }} {{ part.description }} + {{ part.full_name }} {{ part.description }}
      {% if not part.order_supplier %} - {% blocktrans with name=part.name %}Select a supplier for {{name}}{% endblocktrans %} + {% blocktrans with name=part.name %}Select a supplier for {{name}}{% endblocktrans %} {% endif %}
diff --git a/InvenTree/order/templates/order/purchase_order_detail.html b/InvenTree/order/templates/order/purchase_order_detail.html index b05bfa7cc2..4262a810e0 100644 --- a/InvenTree/order/templates/order/purchase_order_detail.html +++ b/InvenTree/order/templates/order/purchase_order_detail.html @@ -19,7 +19,7 @@
{% if order.status == PurchaseOrderStatus.PENDING and roles.purchase_order.change %} - @@ -28,7 +28,7 @@ {% endif %}
- +
@@ -38,7 +38,7 @@

{% trans "Received Items" %}

- {% include "stock_table.html" with read_only=True %} + {% include "stock_table.html" with prevent_new_stock=True %}
@@ -122,6 +122,7 @@ constructForm(url, { fields: { + filename: {}, comment: {}, }, onSuccess: reloadAttachmentTable, @@ -200,255 +201,32 @@ $('#new-po-line').click(function() { }, method: 'POST', title: '{% trans "Add Line Item" %}', - onSuccess: reloadTable, + onSuccess: function() { + $('#po-line-table').bootstrapTable('refresh'); + }, }); }); {% endif %} -function reloadTable() { - $("#po-table").bootstrapTable("refresh"); -} - -function setupCallbacks() { - // Setup callbacks for the line buttons - - var table = $("#po-table"); - +loadPurchaseOrderLineItemTable('#po-line-table', { + order: {{ order.pk }}, + supplier: {{ order.supplier.pk }}, {% if order.status == PurchaseOrderStatus.PENDING %} - table.find(".button-line-edit").click(function() { - var pk = $(this).attr('pk'); - - constructForm(`/api/order/po-line/${pk}/`, { - fields: { - part: { - filters: { - part_detail: true, - supplier_detail: true, - supplier: {{ order.supplier.pk }}, - } - }, - quantity: {}, - reference: {}, - purchase_price: {}, - purchase_price_currency: {}, - destination: {}, - notes: {}, - }, - title: '{% trans "Edit Line Item" %}', - onSuccess: reloadTable, - }); - }); - - table.find(".button-line-delete").click(function() { - var pk = $(this).attr('pk'); - - constructForm(`/api/order/po-line/${pk}/`, { - method: 'DELETE', - title: '{% trans "Delete Line Item" %}', - onSuccess: reloadTable, - }); - }); + allow_edit: true, + {% else %} + allow_edit: false, + {% endif %} + {% if order.status == PurchaseOrderStatus.PLACED and roles.purchase_order.change %} + allow_receive: true, + {% else %} + allow_receive: false, {% endif %} - - table.find(".button-line-receive").click(function() { - var pk = $(this).attr('pk'); - - launchModalForm("{% url 'po-receive' order.id %}", { - success: reloadTable, - data: { - line: pk, - }, - secondary: [ - { - field: 'location', - label: '{% trans "New Location" %}', - title: '{% trans "Create new stock location" %}', - url: "{% url 'stock-location-create' %}", - }, - ] - }); - }); - -} - -$("#po-table").inventreeTable({ - onPostBody: setupCallbacks, - name: 'purchaseorder', - sidePagination: 'server', - formatNoMatches: function() { return "{% trans 'No line items found' %}"; }, - queryParams: { - order: {{ order.id }}, - part_detail: true, - }, - url: "{% url 'api-po-line-list' %}", - showFooter: true, - columns: [ - { - field: 'pk', - title: 'ID', - visible: false, - switchable: false, - }, - { - field: 'part', - sortable: true, - sortName: 'part__part__name', - title: '{% trans "Part" %}', - switchable: false, - formatter: function(value, row, index, field) { - if (row.part) { - return imageHoverIcon(row.part_detail.thumbnail) + renderLink(row.part_detail.full_name, `/part/${row.part_detail.pk}/`); - } else { - return '-'; - } - }, - footerFormatter: function() { - return '{% trans "Total" %}' - } - }, - { - field: 'part_detail.description', - title: '{% trans "Description" %}', - }, - { - sortable: true, - sortName: 'part__SKU', - field: 'supplier_part_detail.SKU', - title: '{% trans "SKU" %}', - formatter: function(value, row, index, field) { - if (value) { - return renderLink(value, `/supplier-part/${row.part}/`); - } else { - return '-'; - } - }, - }, - { - sortable: true, - sortName: 'part__MPN', - field: 'supplier_part_detail.MPN', - title: '{% trans "MPN" %}', - formatter: function(value, row, index, field) { - if (row.supplier_part_detail && row.supplier_part_detail.manufacturer_part) { - return renderLink(value, `/manufacturer-part/${row.supplier_part_detail.manufacturer_part}/`); - } else { - return "-"; - } - }, - }, - { - sortable: true, - field: 'reference', - title: '{% trans "Reference" %}', - }, - { - sortable: true, - field: 'quantity', - title: '{% trans "Quantity" %}', - footerFormatter: function(data) { - return data.map(function (row) { - return +row['quantity'] - }).reduce(function (sum, i) { - return sum + i - }, 0) - } - }, - { - sortable: true, - field: 'purchase_price', - title: '{% trans "Unit Price" %}', - formatter: function(value, row) { - return row.purchase_price_string || row.purchase_price; - } - }, - { - sortable: true, - title: '{% trans "Total price" %}', - formatter: function(value, row) { - var total = row.purchase_price * row.quantity; - var formatter = new Intl.NumberFormat('en-US', {style: 'currency', currency: row.purchase_price_currency}); - return formatter.format(total) - }, - footerFormatter: function(data) { - var total = data.map(function (row) { - return +row['purchase_price']*row['quantity'] - }).reduce(function (sum, i) { - return sum + i - }, 0) - var currency = (data.slice(-1)[0] && data.slice(-1)[0].purchase_price_currency) || 'USD'; - var formatter = new Intl.NumberFormat('en-US', {style: 'currency', currency: currency}); - return formatter.format(total) - } - }, - { - sortable: true, - field: 'received', - switchable: false, - title: '{% trans "Received" %}', - formatter: function(value, row, index, field) { - return makeProgressBar(row.received, row.quantity, { - id: `order-line-progress-${row.pk}`, - }); - }, - sorter: function(valA, valB, rowA, rowB) { - - if (rowA.received == 0 && rowB.received == 0) { - return (rowA.quantity > rowB.quantity) ? 1 : -1; - } - - var progressA = parseFloat(rowA.received) / rowA.quantity; - var progressB = parseFloat(rowB.received) / rowB.quantity; - - return (progressA < progressB) ? 1 : -1; - } - }, - { - field: 'destination', - title: '{% trans "Destination" %}', - formatter: function(value, row) { - if (value) { - return renderLink(row.destination_detail.pathstring, `/stock/location/${value}/`); - } else { - return '-'; - } - } - }, - { - field: 'notes', - title: '{% trans "Notes" %}', - }, - { - switchable: false, - field: 'buttons', - title: '', - formatter: function(value, row, index, field) { - var html = `
`; - - var pk = row.pk; - - {% if order.status == PurchaseOrderStatus.PENDING and roles.purchase_order.delete %} - html += makeIconButton('fa-edit icon-blue', 'button-line-edit', pk, '{% trans "Edit line item" %}'); - html += makeIconButton('fa-trash-alt icon-red', 'button-line-delete', pk, '{% trans "Delete line item" %}'); - {% endif %} - - {% if order.status == PurchaseOrderStatus.PLACED and roles.purchase_order.change %} - if (row.received < row.quantity) { - html += makeIconButton('fa-clipboard-check', 'button-line-receive', pk, '{% trans "Receive line item" %}'); - } - {% endif %} - - html += `
`; - - return html; - }, - } - ] }); - attachNavCallbacks({ - name: 'purchase-order', - default: 'order-items' - }); +attachNavCallbacks({ + name: 'purchase-order', + default: 'order-items' +}); {% endblock %} \ No newline at end of file diff --git a/InvenTree/order/templates/order/purchase_orders.html b/InvenTree/order/templates/order/purchase_orders.html index daefbc0e00..147f6bf244 100644 --- a/InvenTree/order/templates/order/purchase_orders.html +++ b/InvenTree/order/templates/order/purchase_orders.html @@ -17,7 +17,7 @@
{% if roles.purchase_order.add %} - {% endif %} diff --git a/InvenTree/order/templates/order/receive_parts.html b/InvenTree/order/templates/order/receive_parts.html index 847c21b0a3..7b12101f7f 100644 --- a/InvenTree/order/templates/order/receive_parts.html +++ b/InvenTree/order/templates/order/receive_parts.html @@ -5,7 +5,7 @@ {% block form %} -{% blocktrans with desc=order.description %}Receive outstanding parts for {{order}} - {{desc}}{% endblocktrans %} +{% blocktrans with desc=order.description %}Receive outstanding parts for {{order}} - {{desc}}{% endblocktrans %}
{% csrf_token %} diff --git a/InvenTree/order/templates/order/sales_order_detail.html b/InvenTree/order/templates/order/sales_order_detail.html index 277c1f4278..30799e2296 100644 --- a/InvenTree/order/templates/order/sales_order_detail.html +++ b/InvenTree/order/templates/order/sales_order_detail.html @@ -112,6 +112,7 @@ constructForm(url, { fields: { + filename: {}, comment: {}, }, onSuccess: reloadAttachmentTable, diff --git a/InvenTree/order/templates/order/sales_order_ship.html b/InvenTree/order/templates/order/sales_order_ship.html index 0060561e71..763d3fca57 100644 --- a/InvenTree/order/templates/order/sales_order_ship.html +++ b/InvenTree/order/templates/order/sales_order_ship.html @@ -22,7 +22,7 @@ {% endif %}
- {% trans "Sales Order" %} {{ order.reference }} - {{ order.customer.name }} + {% trans "Sales Order" %} {{ order.reference }} - {{ order.customer.name }}
{% trans "Shipping this order means that the order will no longer be editable." %}
diff --git a/InvenTree/order/templates/order/sales_orders.html b/InvenTree/order/templates/order/sales_orders.html index 71ffbc212f..8882f4fef0 100644 --- a/InvenTree/order/templates/order/sales_orders.html +++ b/InvenTree/order/templates/order/sales_orders.html @@ -17,7 +17,7 @@
{% if roles.sales_order.add %} - {% endif %} diff --git a/InvenTree/order/templates/order/so_allocation_delete.html b/InvenTree/order/templates/order/so_allocation_delete.html index e4cbe0b602..34cf20083b 100644 --- a/InvenTree/order/templates/order/so_allocation_delete.html +++ b/InvenTree/order/templates/order/so_allocation_delete.html @@ -6,9 +6,9 @@
{% trans "This action will unallocate the following stock from the Sales Order" %}:
- + {% decimal allocation.get_allocated %} x {{ allocation.line.part.full_name }} {% if allocation.item.location %} ({{ allocation.get_location }}){% endif %} - +
{% endblock %} \ No newline at end of file diff --git a/InvenTree/order/test_api.py b/InvenTree/order/test_api.py index 24ca8581d9..8476a9c668 100644 --- a/InvenTree/order/test_api.py +++ b/InvenTree/order/test_api.py @@ -9,8 +9,11 @@ from rest_framework import status from django.urls import reverse from InvenTree.api_tester import InvenTreeAPITestCase +from InvenTree.status_codes import PurchaseOrderStatus -from .models import PurchaseOrder, SalesOrder +from stock.models import StockItem + +from .models import PurchaseOrder, PurchaseOrderLineItem, SalesOrder class OrderTest(InvenTreeAPITestCase): @@ -201,6 +204,250 @@ class PurchaseOrderTest(OrderTest): response = self.get(url, expected_code=404) +class PurchaseOrderReceiveTest(OrderTest): + """ + Unit tests for receiving items against a PurchaseOrder + """ + + def setUp(self): + super().setUp() + + self.assignRole('purchase_order.add') + + self.url = reverse('api-po-receive', kwargs={'pk': 1}) + + # Number of stock items which exist at the start of each test + self.n = StockItem.objects.count() + + # Mark the order as "placed" so we can receive line items + order = PurchaseOrder.objects.get(pk=1) + order.status = PurchaseOrderStatus.PLACED + order.save() + + def test_empty(self): + """ + Test without any POST data + """ + + data = self.post(self.url, {}, expected_code=400).data + + self.assertIn('This field is required', str(data['items'])) + self.assertIn('This field is required', str(data['location'])) + + # No new stock items have been created + self.assertEqual(self.n, StockItem.objects.count()) + + def test_no_items(self): + """ + Test with an empty list of items + """ + + data = self.post( + self.url, + { + "items": [], + "location": None, + }, + expected_code=400 + ).data + + self.assertIn('Line items must be provided', str(data['items'])) + + # No new stock items have been created + self.assertEqual(self.n, StockItem.objects.count()) + + def test_invalid_items(self): + """ + Test than errors are returned as expected for invalid data + """ + + data = self.post( + self.url, + { + "items": [ + { + "line_item": 12345, + "location": 12345 + } + ] + }, + expected_code=400 + ).data + + items = data['items'][0] + + self.assertIn('Invalid pk "12345"', str(items['line_item'])) + self.assertIn("object does not exist", str(items['location'])) + + # No new stock items have been created + self.assertEqual(self.n, StockItem.objects.count()) + + def test_invalid_status(self): + """ + Test with an invalid StockStatus value + """ + + data = self.post( + self.url, + { + "items": [ + { + "line_item": 22, + "location": 1, + "status": 99999, + "quantity": 5, + } + ] + }, + expected_code=400 + ).data + + self.assertIn('"99999" is not a valid choice.', str(data)) + + # No new stock items have been created + self.assertEqual(self.n, StockItem.objects.count()) + + def test_mismatched_items(self): + """ + Test for supplier parts which *do* exist but do not match the order supplier + """ + + data = self.post( + self.url, + { + 'items': [ + { + 'line_item': 22, + 'quantity': 123, + 'location': 1, + } + ], + 'location': None, + }, + expected_code=400 + ).data + + self.assertIn('Line item does not match purchase order', str(data)) + + # No new stock items have been created + self.assertEqual(self.n, StockItem.objects.count()) + + def test_invalid_barcodes(self): + """ + Tests for checking in items with invalid barcodes: + + - Cannot check in "duplicate" barcodes + - Barcodes cannot match UID field for existing StockItem + """ + + # Set stock item barcode + item = StockItem.objects.get(pk=1) + item.uid = 'MY-BARCODE-HASH' + item.save() + + response = self.post( + self.url, + { + 'items': [ + { + 'line_item': 1, + 'quantity': 50, + 'barcode': 'MY-BARCODE-HASH', + } + ], + 'location': 1, + }, + expected_code=400 + ) + + self.assertIn('Barcode is already in use', str(response.data)) + + response = self.post( + self.url, + { + 'items': [ + { + 'line_item': 1, + 'quantity': 5, + 'barcode': 'MY-BARCODE-HASH-1', + }, + { + 'line_item': 1, + 'quantity': 5, + 'barcode': 'MY-BARCODE-HASH-1' + }, + ], + 'location': 1, + }, + expected_code=400 + ) + + self.assertIn('barcode values must be unique', str(response.data)) + + # No new stock items have been created + self.assertEqual(self.n, StockItem.objects.count()) + + def test_valid(self): + """ + Test receipt of valid data + """ + + line_1 = PurchaseOrderLineItem.objects.get(pk=1) + line_2 = PurchaseOrderLineItem.objects.get(pk=2) + + self.assertEqual(StockItem.objects.filter(supplier_part=line_1.part).count(), 0) + self.assertEqual(StockItem.objects.filter(supplier_part=line_2.part).count(), 0) + + self.assertEqual(line_1.received, 0) + self.assertEqual(line_2.received, 50) + + # Receive two separate line items against this order + self.post( + self.url, + { + 'items': [ + { + 'line_item': 1, + 'quantity': 50, + 'barcode': 'MY-UNIQUE-BARCODE-123', + }, + { + 'line_item': 2, + 'quantity': 200, + 'location': 2, # Explicit location + 'barcode': 'MY-UNIQUE-BARCODE-456', + } + ], + 'location': 1, # Default location + }, + expected_code=201, + ) + + # There should be two newly created stock items + self.assertEqual(self.n + 2, StockItem.objects.count()) + + line_1 = PurchaseOrderLineItem.objects.get(pk=1) + line_2 = PurchaseOrderLineItem.objects.get(pk=2) + + self.assertEqual(line_1.received, 50) + self.assertEqual(line_2.received, 250) + + stock_1 = StockItem.objects.filter(supplier_part=line_1.part) + stock_2 = StockItem.objects.filter(supplier_part=line_2.part) + + # 1 new stock item created for each supplier part + self.assertEqual(stock_1.count(), 1) + self.assertEqual(stock_2.count(), 1) + + # Different location for each received item + self.assertEqual(stock_1.last().location.pk, 1) + self.assertEqual(stock_2.last().location.pk, 2) + + # Barcodes should have been assigned to the stock items + self.assertTrue(StockItem.objects.filter(uid='MY-UNIQUE-BARCODE-123').exists()) + self.assertTrue(StockItem.objects.filter(uid='MY-UNIQUE-BARCODE-456').exists()) + + class SalesOrderTest(OrderTest): """ Tests for the SalesOrder API diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py index 789ba9b9b7..34441286ff 100644 --- a/InvenTree/part/api.py +++ b/InvenTree/part/api.py @@ -9,12 +9,14 @@ from django.conf.urls import url, include from django.urls import reverse from django.http import JsonResponse from django.db.models import Q, F, Count, Min, Max, Avg +from django.db import transaction from django.utils.translation import ugettext_lazy as _ from rest_framework import status from rest_framework.response import Response from rest_framework import filters, serializers from rest_framework import generics +from rest_framework.exceptions import ValidationError from django_filters.rest_framework import DjangoFilterBackend from django_filters import rest_framework as rest_filters @@ -23,7 +25,7 @@ from djmoney.money import Money from djmoney.contrib.exchange.models import convert_money from djmoney.contrib.exchange.exceptions import MissingRate -from decimal import Decimal +from decimal import Decimal, InvalidOperation from .models import Part, PartCategory, BomItem from .models import PartParameter, PartParameterTemplate @@ -31,7 +33,10 @@ from .models import PartAttachment, PartTestTemplate from .models import PartSellPriceBreak, PartInternalPriceBreak from .models import PartCategoryParameterTemplate -from stock.models import StockItem +from company.models import Company, ManufacturerPart, SupplierPart + +from stock.models import StockItem, StockLocation + from common.models import InvenTreeSetting from build.models import Build @@ -630,6 +635,7 @@ class PartList(generics.ListCreateAPIView): else: return Response(data) + @transaction.atomic def create(self, request, *args, **kwargs): """ We wish to save the user who created this part! @@ -637,6 +643,8 @@ class PartList(generics.ListCreateAPIView): Note: Implementation copied from DRF class CreateModelMixin """ + # TODO: Unit tests for this function! + serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) @@ -680,21 +688,97 @@ class PartList(generics.ListCreateAPIView): pass # Optionally create initial stock item - try: - initial_stock = Decimal(request.data.get('initial_stock', 0)) + initial_stock = str2bool(request.data.get('initial_stock', False)) - if initial_stock > 0 and part.default_location is not None: + if initial_stock: + try: - stock_item = StockItem( + initial_stock_quantity = Decimal(request.data.get('initial_stock_quantity', '')) + + if initial_stock_quantity <= 0: + raise ValidationError({ + 'initial_stock_quantity': [_('Must be greater than zero')], + }) + except (ValueError, InvalidOperation): # Invalid quantity provided + raise ValidationError({ + 'initial_stock_quantity': [_('Must be a valid quantity')], + }) + + initial_stock_location = request.data.get('initial_stock_location', None) + + try: + initial_stock_location = StockLocation.objects.get(pk=initial_stock_location) + except (ValueError, StockLocation.DoesNotExist): + initial_stock_location = None + + if initial_stock_location is None: + if part.default_location is not None: + initial_stock_location = part.default_location + else: + raise ValidationError({ + 'initial_stock_location': [_('Specify location for initial part stock')], + }) + + stock_item = StockItem( + part=part, + quantity=initial_stock_quantity, + location=initial_stock_location, + ) + + stock_item.save(user=request.user) + + # Optionally add manufacturer / supplier data to the part + if part.purchaseable and str2bool(request.data.get('add_supplier_info', False)): + + try: + manufacturer = Company.objects.get(pk=request.data.get('manufacturer', None)) + except: + manufacturer = None + + try: + supplier = Company.objects.get(pk=request.data.get('supplier', None)) + except: + supplier = None + + mpn = str(request.data.get('MPN', '')).strip() + sku = str(request.data.get('SKU', '')).strip() + + # Construct a manufacturer part + if manufacturer or mpn: + if not manufacturer: + raise ValidationError({ + 'manufacturer': [_("This field is required")] + }) + if not mpn: + raise ValidationError({ + 'MPN': [_("This field is required")] + }) + + manufacturer_part = ManufacturerPart.objects.create( part=part, - quantity=initial_stock, - location=part.default_location, + manufacturer=manufacturer, + MPN=mpn ) + else: + # No manufacturer part data specified + manufacturer_part = None - stock_item.save(user=request.user) + if supplier or sku: + if not supplier: + raise ValidationError({ + 'supplier': [_("This field is required")] + }) + if not sku: + raise ValidationError({ + 'SKU': [_("This field is required")] + }) - except: - pass + SupplierPart.objects.create( + part=part, + supplier=supplier, + SKU=sku, + manufacturer_part=manufacturer_part, + ) headers = self.get_success_headers(serializer.data) diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index 50d3044771..d7ad577081 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -35,6 +35,8 @@ from stdimage.models import StdImageField from decimal import Decimal, InvalidOperation from datetime import datetime import hashlib +from djmoney.contrib.exchange.models import convert_money +from common.settings import currency_code_default from InvenTree import helpers from InvenTree import validators @@ -1514,7 +1516,7 @@ class Part(MPTTModel): return (min_price, max_price) - def get_bom_price_range(self, quantity=1, internal=False): + def get_bom_price_range(self, quantity=1, internal=False, purchase=False): """ Return the price range of the BOM for this part. Adds the minimum price for all components in the BOM. @@ -1531,7 +1533,7 @@ class Part(MPTTModel): print("Warning: Item contains itself in BOM") continue - prices = item.sub_part.get_price_range(quantity * item.quantity, internal=internal) + prices = item.sub_part.get_price_range(quantity * item.quantity, internal=internal, purchase=purchase) if prices is None: continue @@ -1555,16 +1557,17 @@ class Part(MPTTModel): return (min_price, max_price) - def get_price_range(self, quantity=1, buy=True, bom=True, internal=False): + def get_price_range(self, quantity=1, buy=True, bom=True, internal=False, purchase=False): """ Return the price range for this part. This price can be either: - Supplier price (if purchased from suppliers) - BOM price (if built from other parts) - Internal price (if set for the part) + - Purchase price (if set for the part) Returns: - Minimum of the supplier, BOM or internal price. If no pricing available, returns None + Minimum of the supplier, BOM, internal or purchase price. If no pricing available, returns None """ # only get internal price if set and should be used @@ -1572,6 +1575,12 @@ class Part(MPTTModel): internal_price = self.get_internal_price(quantity) return internal_price, internal_price + # only get purchase price if set and should be used + if purchase: + purchase_price = self.get_purchase_price(quantity) + if purchase_price: + return purchase_price + buy_price_range = self.get_supplier_price_range(quantity) if buy else None bom_price_range = self.get_bom_price_range(quantity, internal=internal) if bom else None @@ -1641,6 +1650,13 @@ class Part(MPTTModel): def internal_unit_pricing(self): return self.get_internal_price(1) + def get_purchase_price(self, quantity): + currency = currency_code_default() + prices = [convert_money(item.purchase_price, currency).amount for item in self.stock_items.all() if item.purchase_price] + if prices: + return min(prices) * quantity, max(prices) * quantity + return None + @transaction.atomic def copy_bom_from(self, other, clear=True, **kwargs): """ diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index e2c8c3fa4d..060faf8b0d 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -1,6 +1,7 @@ """ JSON serializers for Part app """ + import imghdr from decimal import Decimal @@ -16,7 +17,9 @@ from djmoney.contrib.django_rest_framework import MoneyField from InvenTree.serializers import (InvenTreeAttachmentSerializerField, InvenTreeImageSerializerField, InvenTreeModelSerializer, + InvenTreeAttachmentSerializer, InvenTreeMoneySerializer) + from InvenTree.status_codes import BuildStatus, PurchaseOrderStatus from stock.models import StockItem @@ -51,7 +54,7 @@ class CategorySerializer(InvenTreeModelSerializer): ] -class PartAttachmentSerializer(InvenTreeModelSerializer): +class PartAttachmentSerializer(InvenTreeAttachmentSerializer): """ Serializer for the PartAttachment class """ @@ -65,6 +68,7 @@ class PartAttachmentSerializer(InvenTreeModelSerializer): 'pk', 'part', 'attachment', + 'filename', 'comment', 'upload_date', ] @@ -202,6 +206,7 @@ class PartBriefSerializer(InvenTreeModelSerializer): 'stock', 'trackable', 'virtual', + 'units', ] diff --git a/InvenTree/part/templates/part/bom.html b/InvenTree/part/templates/part/bom.html index 4376c23ab9..750e205e04 100644 --- a/InvenTree/part/templates/part/bom.html +++ b/InvenTree/part/templates/part/bom.html @@ -11,13 +11,13 @@
{% else %}
- {% blocktrans with part=part.full_name %}The BOM for {{ part }} has changed, and must be validated.
{% endblocktrans %} + {% blocktrans with part=part.full_name %}The BOM for {{ part }} has changed, and must be validated.
{% endblocktrans %} {% endif %} - {% blocktrans with part=part.full_name checker=part.bom_checked_by check_date=part.bom_checked_date %}The BOM for {{ part }} was last checked by {{ checker }} on {{ check_date }}{% endblocktrans %} + {% blocktrans with part=part.full_name checker=part.bom_checked_by check_date=part.bom_checked_date %}The BOM for {{ part }} was last checked by {{ checker }} on {{ check_date }}{% endblocktrans %}
{% else %}
- {% blocktrans with part=part.full_name %}The BOM for {{ part }} has not been validated.{% endblocktrans %} + {% blocktrans with part=part.full_name %}The BOM for {{ part }} has not been validated.{% endblocktrans %}
{% endif %} diff --git a/InvenTree/part/templates/part/bom_duplicate.html b/InvenTree/part/templates/part/bom_duplicate.html index 7fd45afcbf..1d8ccc7d1a 100644 --- a/InvenTree/part/templates/part/bom_duplicate.html +++ b/InvenTree/part/templates/part/bom_duplicate.html @@ -9,7 +9,7 @@ {% if part.has_bom %}
- {% trans "Warning" %}
+ {% trans "Warning" %}
{% trans "This part already has a Bill of Materials" %}
{% endif %} diff --git a/InvenTree/part/templates/part/bom_upload/match_fields.html b/InvenTree/part/templates/part/bom_upload/match_fields.html index 3bd51c1855..75ab03ad8f 100644 --- a/InvenTree/part/templates/part/bom_upload/match_fields.html +++ b/InvenTree/part/templates/part/bom_upload/match_fields.html @@ -57,7 +57,7 @@ {% for duplicate in duplicates %} {% if duplicate == col.value %} {% endif %} {% endfor %} diff --git a/InvenTree/part/templates/part/bom_upload/upload_file.html b/InvenTree/part/templates/part/bom_upload/upload_file.html index 23916ddda6..2fa60c5575 100644 --- a/InvenTree/part/templates/part/bom_upload/upload_file.html +++ b/InvenTree/part/templates/part/bom_upload/upload_file.html @@ -43,9 +43,9 @@ {% block form_alert %}
diff --git a/InvenTree/part/templates/part/bom_validate.html b/InvenTree/part/templates/part/bom_validate.html index 6b3aff6eac..3554f9c56a 100644 --- a/InvenTree/part/templates/part/bom_validate.html +++ b/InvenTree/part/templates/part/bom_validate.html @@ -3,7 +3,7 @@ {% load i18n %} {% block pre_form_content %} -{% blocktrans with part.full_name as part %}Confirm that the Bill of Materials (BOM) is valid for:
{{ part }}{% endblocktrans %} +{% blocktrans with part.full_name as part %}Confirm that the Bill of Materials (BOM) is valid for:
{{ part }}{% endblocktrans %}
{% trans 'This will validate each line in the BOM.' %} diff --git a/InvenTree/part/templates/part/category.html b/InvenTree/part/templates/part/category.html index b149fd28ed..21c5d0061e 100644 --- a/InvenTree/part/templates/part/category.html +++ b/InvenTree/part/templates/part/category.html @@ -132,12 +132,13 @@ {% endif %}
- +
@@ -276,6 +277,7 @@ constructForm('{% url "api-part-list" %}', { method: 'POST', fields: fields, + groups: partGroups(), title: '{% trans "Create Part" %}', onSuccess: function(data) { // Follow the new part @@ -336,4 +338,4 @@ default: 'part-stock' }); -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/InvenTree/part/templates/part/create_part.html b/InvenTree/part/templates/part/create_part.html index 31ef1cb7e6..9587a4f92b 100644 --- a/InvenTree/part/templates/part/create_part.html +++ b/InvenTree/part/templates/part/create_part.html @@ -8,13 +8,13 @@ {% if matches %}
- {% trans "Possible Matching Parts" %} + {% trans "Possible Matching Parts" %}

{% trans "The new part may be a duplicate of these existing parts" %}:

    {% for match in matches %}
  • {% decimal match.ratio as match_per %} - {% blocktrans with full_name=match.part.full_name desc=match.part.description %}{{full_name}} - {{desc}} ({{match_per}}% match){% endblocktrans %} + {% blocktrans with full_name=match.part.full_name desc=match.part.description %}{{full_name}} - {{desc}} ({{match_per}}% match){% endblocktrans %}
  • {% endfor %}
diff --git a/InvenTree/part/templates/part/detail.html b/InvenTree/part/templates/part/detail.html index 846320b8e1..d240b53601 100644 --- a/InvenTree/part/templates/part/detail.html +++ b/InvenTree/part/templates/part/detail.html @@ -18,7 +18,7 @@
{% if part.is_template %}
- {% blocktrans with full_name=part.full_name%}Showing stock for all variants of {{full_name}}{% endblocktrans %} + {% blocktrans with full_name=part.full_name%}Showing stock for all variants of {{full_name}}{% endblocktrans %}
{% endif %} {% include "stock_table.html" %} @@ -74,7 +74,7 @@
{% if 0 %} - + {% endif %}
@@ -185,7 +185,7 @@